tstAsmLock-2.asm revision 52f13cdf80e4d2562f078013ca8eaa038a9c4aa9
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;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync;
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync; Copyright (C) 2008 Sun Microsystems, Inc.
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; Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync; Clara, CA 95054 USA or visit http://www.sun.com if you need
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync; additional information or have any questions.
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
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; NEG
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; NOT
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; OR
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; SBB
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; SUB
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; XADD
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; XCHG
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; XOR
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync