2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync; $Id$
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync;; @file
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync; Disassembly testcase - Invalid invariants.
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync; The intention is to check in a binary using the --all-invalid mode
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync; of tstDisasm-2.
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync;
27d11a2ceb9a7a9d9ee5f67c556e7515822933b3vboxsync; There are some regX, reg/memX variations that aren't tested as
27d11a2ceb9a7a9d9ee5f67c556e7515822933b3vboxsync; they would require db'ing out the instructions (12 /r and 13 /r
27d11a2ceb9a7a9d9ee5f67c556e7515822933b3vboxsync; for instance).
27d11a2ceb9a7a9d9ee5f67c556e7515822933b3vboxsync;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync;
c7814cf6e1240a519cbec0441e033d0e2470ed00vboxsync; Copyright (C) 2008-2010 Oracle Corporation
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync; This file is part of VirtualBox Open Source Edition (OSE), as
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync; available from http://www.virtualbox.org. This file is free software;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync; you can redistribute it and/or modify it under the terms of the GNU
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync; General Public License (GPL) as published by the Free Software
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync; Foundation, in version 2 as it comes in the "COPYING" file of the
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync%include "tstAsm.mac"
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%if TEST_BITS == 64
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync; The disassembler doesn't do imm32 right for 64-bit stuff, so disable it for now.
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync; %define WITH_64_BIT_TESTS_IMM32
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync %define WITH_64_BIT_TESTS
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%endif
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync
8fa1e8a8a8702ee38195fbe7ad5959bf971eb93bvboxsync BITS TEST_BITS
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync ;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; ADC
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync ;
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync ; 14 ib ADC AL, imm8
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc al, byte 8
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync ; 15 i[wd] ADC [ER]AX, immX
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc ax, word 16
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc eax, dword 128
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%ifdef WITH_64_BIT_TESTS_IMM32
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc rax, dword 256
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc rax, dword 0cc90cc90h
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync%endif
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync ; 80 /2 ib ADC reg/mem8, imm8 - with reg dst
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc cl, byte 8
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync ; 81 /2 i[wd] ADC reg/memX, immX - with reg dst
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc cx, word 1000h
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc ecx, dword 100000h
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%ifdef WITH_64_BIT_TESTS_IMM32
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc rcx, dword 100000h
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync%endif
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync ; 83 /2 ib ADC reg/memX, imm8 - with reg dst
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc cx, byte 07fh
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc ecx, byte 07fh
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%ifdef WITH_64_BIT_TESTS_IMM32
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc rcx, byte 07fh
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync%endif
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync ; 10 /r ADC reg/mem8, reg8 - with reg dst
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc cl, bl
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync ; 11 /r ADC reg/memX, regX - with reg dst
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc cx, bx
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc ecx, ebx
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync%ifdef WITH_64_BIT_TESTS
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc rcx, rbx
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync%endif
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync ; 12 /r ADC reg8, reg/mem8
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc cl, [0badh]
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync ; 13 /r ADC regX, reg/memX
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc cx, [0badh]
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc ecx, [0badh]
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync%ifdef WITH_64_BIT_TESTS
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync lock adc rcx, [0badh]
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync%endif
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; ADD
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ;
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ; 04 ib ADD AL, imm8
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add al, byte 8
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ; 05 i[wd] ADD [ER]AX, immX
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add ax, word 16
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add eax, dword 128
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%ifdef WITH_64_BIT_TESTS_IMM32
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add rax, dword 256
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add rax, dword 0cc90cc90h
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync%endif
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ; 80 /0 ib ADD reg/mem8, imm8 - with reg dst
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add cl, byte 8
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ; 81 /0 i[wd] ADD reg/memX, immX - with reg dst
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add cx, word 1000h
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add ecx, dword 100000h
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%ifdef WITH_64_BIT_TESTS_IMM32
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add rcx, dword 100000h
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync%endif
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ; 83 /0 ib ADD reg/memX, imm8 - with reg dst
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add cx, byte 07fh
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add ecx, byte 07fh
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync%ifdef WITH_64_BIT_TESTS
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add rcx, byte 07fh
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync%endif
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ; 00 /r ADD reg/mem8, reg8 - with reg dst
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add cl, bl
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ; 01 /r ADD reg/memX, regX - with reg dst
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add cx, bx
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add ecx, ebx
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync%ifdef WITH_64_BIT_TESTS
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add rcx, rbx
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync%endif
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ; 02 /r ADD reg8, reg/mem8
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add cl, [0badh]
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ; 03 /r ADD regX, reg/memX
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add cx, [0badh]
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add ecx, [0badh]
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync%ifdef WITH_64_BIT_TESTS
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock add rcx, [0badh]
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync%endif
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; AND
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ;
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ; 24 ib AND AL, imm8
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and al, byte 8
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ; 25 i[wd] AND [ER]AX, immX
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and ax, word 16
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and eax, dword 128
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%ifdef WITH_64_BIT_TESTS_IMM32
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and rax, dword 256
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and rax, dword 0cc90cc90h
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync%endif
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ; 80 /4 ib AND reg/mem8, imm8 - with reg dst
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and cl, byte 8
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ; 81 /4 i[wd] AND reg/memX, immX - with reg dst
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and cx, word 1000h
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and ecx, dword 100000h
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%ifdef WITH_64_BIT_TESTS_IMM32
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and rcx, dword 100000h
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync%endif
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ; 83 /4 ib AND reg/memX, imm8 - with reg dst
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and cx, byte 07fh
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and ecx, byte 07fh
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync%ifdef WITH_64_BIT_TESTS
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and rcx, byte 07fh
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync%endif
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ; 20 /r AND reg/mem8, reg8 - with reg dst
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and cl, bl
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ; 21 /r AND reg/memX, regX - with reg dst
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and cx, bx
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and ecx, ebx
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync%ifdef WITH_64_BIT_TESTS
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and rcx, rbx
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync%endif
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ; 22 /r AND reg8, reg/mem8
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and cl, [0badh]
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync ; 23 /r AND regX, reg/memX
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and cx, [0badh]
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and ecx, [0badh]
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync%ifdef WITH_64_BIT_TESTS
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync lock and rcx, [0badh]
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync%endif
d4fc85c3ee5e6be624f59217c7e677187f4ed1c1vboxsync
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync ;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; BTC
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync ;
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync ; 0f bb /r BTC reg/memX, regX (X != 8) - with reg dst
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btc cx, bx
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btc ecx, ebx
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%ifdef WITH_64_BIT_TESTS
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btc rcx, rbx
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btc r8, rbx
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btc r10, r8
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%endif
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync ; 0f ba /7 ib BTC reg/memX, imm8 (X != 8) - with reg dst
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btc cx, 15
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btc ecx, 30
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%ifdef WITH_64_BIT_TESTS
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btc rcx, 60
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btc r8, 61
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btc r10, 3
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%endif
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync ;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; BTR
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync ;
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync ; 0f b3 /r BTR reg/memX, regX (X != 8) - with reg dst
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btr cx, bx
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btr ecx, ebx
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%ifdef WITH_64_BIT_TESTS
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btr rcx, rbx
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btr r8, rbx
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btr r10, r8
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%endif
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync ; 0f ba /6 ib BTR reg/memX, imm8 (X != 8) - with reg dst
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btr cx, 15
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btr ecx, 30
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%ifdef WITH_64_BIT_TESTS
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btr rcx, 60
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btr r8, 61
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock btr r10, 3
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%endif
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync ;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; BTS
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync ;
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync ; 0f ab /r BTS reg/memX, regX (X != 8) - with reg dst
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock bts cx, bx
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock bts ecx, ebx
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%ifdef WITH_64_BIT_TESTS
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock bts rcx, rbx
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock bts r8, rbx
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock bts r10, r8
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%endif
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync ; 0f ba /5 ib BTS reg/memX, imm8 (X != 8) - with reg dst
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock bts cx, 15
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock bts ecx, 30
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%ifdef WITH_64_BIT_TESTS
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock bts rcx, 60
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock bts r8, 61
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync lock bts r10, 3
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync%endif
d87590b7372fa24a007e0b16b1785b2be49461aevboxsync
76ebef03f51acf550f0d4c488ecb70993511430fvboxsync ;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; CMPXCHG
76ebef03f51acf550f0d4c488ecb70993511430fvboxsync ;
76ebef03f51acf550f0d4c488ecb70993511430fvboxsync ; 0f b0 /r CMPXCHG reg8/mem8, regX - with reg dst
76ebef03f51acf550f0d4c488ecb70993511430fvboxsync lock cmpxchg bl, cl
76ebef03f51acf550f0d4c488ecb70993511430fvboxsync ; 0f b1 /r CMPXCHG regX/memX, regX - with reg dst
76ebef03f51acf550f0d4c488ecb70993511430fvboxsync lock cmpxchg bx, cx
76ebef03f51acf550f0d4c488ecb70993511430fvboxsync lock cmpxchg ebx, ecx
76ebef03f51acf550f0d4c488ecb70993511430fvboxsync%ifdef WITH_64_BIT_TESTS
76ebef03f51acf550f0d4c488ecb70993511430fvboxsync lock cmpxchg rbx, rcx
76ebef03f51acf550f0d4c488ecb70993511430fvboxsync%endif
76ebef03f51acf550f0d4c488ecb70993511430fvboxsync
76ebef03f51acf550f0d4c488ecb70993511430fvboxsync ;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; CMPXCHG8B
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; CMPXCHG16B
76ebef03f51acf550f0d4c488ecb70993511430fvboxsync ;
76ebef03f51acf550f0d4c488ecb70993511430fvboxsync ; all valid.
76ebef03f51acf550f0d4c488ecb70993511430fvboxsync
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync ;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; DEC
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync ;
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync ; fe /1 DEC reg8/mem8 - with reg dst
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync lock dec bl
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync ; ff /1 DEC regX/memX - with reg dst
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync%if TEST_BITS != 64 ; cannot force these two in 32 and 16 bit mode.
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync db 066h, 0f0h, 0ffh, 0cbh
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync db 0f0h, 0ffh, 0cbh
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync%else
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync lock dec bx
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync lock dec ebx
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync %ifdef WITH_64_BIT_TESTS
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync lock dec rbx
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync lock dec r8
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync lock dec r14
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync %endif
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync%endif
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync%if TEST_BITS != 64
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync ; 48 +rw DEC reg16
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync lock dec dx
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync ; 48 +rd DEC reg32
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync lock dec edx
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync%endif
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync ;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; INC
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync ;
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync ; fe /1 INC reg8/mem8 - with reg dst
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync lock inc bl
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync ; ff /1 INC regX/memX - with reg dst
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync%if TEST_BITS != 64 ; cannot force these two in 32 and 16 bit mode.
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync db 066h, 0f0h, 0ffh, 0c3h
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync db 0f0h, 0ffh, 0c3h
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync%else
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync lock inc bx
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync lock inc ebx
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync %ifdef WITH_64_BIT_TESTS
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync lock inc rbx
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync lock inc r8
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync lock inc r14
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync %endif
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync%endif
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync%if TEST_BITS != 64
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync ; 48 +rw INC reg16
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync lock inc dx
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync ; 48 +rd INC reg32
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync lock inc edx
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync%endif
52f13cdf80e4d2562f078013ca8eaa038a9c4aa9vboxsync
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync ;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; NEG
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync ;
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync ; f6 /3 NEG reg8/mem8 - with reg dst
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync lock neg bl
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync ; f7 /3 NEG regX/memX - with reg dst
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync lock neg bx
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync lock neg ebx
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync%ifdef WITH_64_BIT_TESTS
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync lock neg rbx
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync lock neg r8
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync lock neg r14
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync%endif
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync ;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; NOT
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync ;
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync ; f6 /2 NOT reg8/mem8 - with reg dst
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync lock not bl
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync ; f7 /2 NOT regX/memX - with reg dst
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync lock not bx
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync lock not ebx
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync%ifdef WITH_64_BIT_TESTS
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync lock not rbx
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync lock not r8
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync lock not r14
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync%endif
5edc3492286a55edcf508851ad6b0a172c975edfvboxsync
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; OR
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ;
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 0C ib OR AL, imm8
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or al, byte 8
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 0D i[wd] OR [ER]AX, immX
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or ax, word 16
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or eax, dword 128
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%ifdef WITH_64_BIT_TESTS_IMM32
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or rax, dword 256
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or rax, dword 0cc90cc90h
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%endif
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 80 /1 ib OR reg/mem8, imm8 - with reg dst
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or cl, byte 8
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 81 /1 i[wd] OR reg/memX, immX - with reg dst
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or cx, word 1000h
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or ecx, dword 100000h
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%ifdef WITH_64_BIT_TESTS_IMM32
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or rcx, dword 100000h
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%endif
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 83 /1 ib OR reg/memX, imm8 - with reg dst
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or cx, byte 07fh
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or ecx, byte 07fh
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%ifdef WITH_64_BIT_TESTS_IMM32
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or rcx, byte 07fh
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%endif
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 08 /r OR reg/mem8, reg8 - with reg dst
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or cl, bl
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 09 /r OR reg/memX, regX - with reg dst
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or cx, bx
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or ecx, ebx
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%ifdef WITH_64_BIT_TESTS
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or rcx, rbx
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%endif
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 0A /r OR reg8, reg/mem8
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or cl, [0badh]
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 0B /r OR regX, reg/memX
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or cx, [0badh]
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or ecx, [0badh]
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%ifdef WITH_64_BIT_TESTS
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock or rcx, [0badh]
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%endif
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; SBB
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ;
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 1C ib SBB AL, imm8
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb al, byte 8
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 1D i[wd] SBB [ER]AX, immX
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb ax, word 16
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb eax, dword 128
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%ifdef WITH_64_BIT_TESTS_IMM32
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb rax, dword 256
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb rax, dword 0cc90cc90h
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%endif
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 80 /3 ib SBB reg/mem8, imm8 - with reg dst
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb cl, byte 8
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 81 /3 i[wd] SBB reg/memX, immX - with reg dst
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb cx, word 1000h
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb ecx, dword 100000h
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%ifdef WITH_64_BIT_TESTS_IMM32
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb rcx, dword 100000h
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%endif
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 83 /3 ib SBB reg/memX, imm8 - with reg dst
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb cx, byte 07fh
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb ecx, byte 07fh
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%ifdef WITH_64_BIT_TESTS_IMM32
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb rcx, byte 07fh
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%endif
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 18 /r SBB reg/mem8, reg8 - with reg dst
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb cl, bl
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 19 /r SBB reg/memX, regX - with reg dst
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb cx, bx
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb ecx, ebx
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%ifdef WITH_64_BIT_TESTS
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb rcx, rbx
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%endif
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 1A /r SBB reg8, reg/mem8
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb cl, [0badh]
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 1B /r SBB regX, reg/memX
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb cx, [0badh]
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb ecx, [0badh]
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%ifdef WITH_64_BIT_TESTS
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sbb rcx, [0badh]
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%endif
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; SUB
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ;
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 2C ib SUB AL, imm8
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub al, byte 8
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 2D i[wd] SUB [ER]AX, immX
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub ax, word 16
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub eax, dword 128
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%ifdef WITH_64_BIT_TESTS_IMM32
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub rax, dword 256
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub rax, dword 0cc90cc90h
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%endif
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 80 /5 ib SUB reg/mem8, imm8 - with reg dst
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub cl, byte 8
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 81 /5 i[wd] SUB reg/memX, immX - with reg dst
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub cx, word 1000h
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub ecx, dword 100000h
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%ifdef WITH_64_BIT_TESTS_IMM32
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub rcx, dword 100000h
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%endif
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 83 /5 ib SUB reg/memX, imm8 - with reg dst
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub cx, byte 07fh
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub ecx, byte 07fh
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%ifdef WITH_64_BIT_TESTS_IMM32
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub rcx, byte 07fh
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%endif
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 28 /r SUB reg/mem8, reg8 - with reg dst
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub cl, bl
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 29 /r SUB reg/memX, regX - with reg dst
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub cx, bx
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub ecx, ebx
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%ifdef WITH_64_BIT_TESTS
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub rcx, rbx
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%endif
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 2A /r SUB reg8, reg/mem8
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub cl, [0badh]
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync ; 2B /r SUB regX, reg/memX
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub cx, [0badh]
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub ecx, [0badh]
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%ifdef WITH_64_BIT_TESTS
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync lock sub rcx, [0badh]
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync%endif
1b46f37d3d01a583e1fe514088598fba126abf8evboxsync
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; XADD
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ;
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ; 0f c0 /r XADD reg/mem8, reg8 - with reg dst
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xadd al, bl
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ; 0f c1 /r XADD reg/memX, immX - with reg dst
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xadd cx, bx
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xadd ecx, ebx
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync%ifdef WITH_64_BIT_TESTS
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xadd rcx, rbx
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xadd r8, rbx
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xadd r10, r8
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync%endif
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; XCHG
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ;
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ; Note: The operands can be switched around but the
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ; encoding is the same.
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ;
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ; 90 +r[wdq] XCHG [RE]ax, regX
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xchg ax, bx
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xchg eax, ecx
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync%ifdef WITH_64_BIT_TESTS
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xchg rax, rcx
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xchg rax, r10
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync%endif
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ; 86 /r XCHG reg/mem8, imm8 - with reg dst
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xchg al, bl
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync%ifdef WITH_64_BIT_TESTS
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xchg r10b, cl
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xchg r10b, r15b
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync%endif
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ; 87 /r XCHG reg/memX, immX - with reg dst
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xchg ax, bx
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xchg eax, ebx
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync%ifdef WITH_64_BIT_TESTS_IMM32
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xchg rax, rbx
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xchg r12, rbx
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xchg r14, r8
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync%endif
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ;
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ; XOR
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ;
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ; 34 ib XOR AL, imm8
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor al, byte 8
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ; 35 i[wd] XOR [ER]AX, immX
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor ax, word 16
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor eax, dword 128
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync%ifdef WITH_64_BIT_TESTS_IMM32
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor rax, dword 256
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor rax, dword 0cc90cc90h
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync%endif
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ; 80 /6 ib XOR reg/mem8, imm8 - with reg dst
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor cl, byte 8
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ; 81 /6 i[wd] XOR reg/memX, immX - with reg dst
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor cx, word 1000h
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor ecx, dword 100000h
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync%ifdef WITH_64_BIT_TESTS_IMM32
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor rcx, dword 100000h
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync%endif
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ; 83 /6 ib XOR reg/memX, imm8 - with reg dst
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor cx, byte 07fh
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor ecx, byte 07fh
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync%ifdef WITH_64_BIT_TESTS_IMM32
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor rcx, byte 07fh
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync%endif
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ; 30 /r XOR reg/mem8, reg8 - with reg dst
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor cl, bl
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ; 31 /r XOR reg/memX, regX - with reg dst
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor cx, bx
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor ecx, ebx
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync%ifdef WITH_64_BIT_TESTS
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor rcx, rbx
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync%endif
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ; 32 /r XOR reg8, reg/mem8
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor cl, [0badh]
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync ; 33 /r XOR regX, reg/memX
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor cx, [0badh]
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor ecx, [0badh]
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync%ifdef WITH_64_BIT_TESTS
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync lock xor rcx, [0badh]
b092604ecf7af2c2e13df4b8b17f4cab946ea985vboxsync%endif
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync