tstAsmLock-2.asm revision 4c0fd6e5274870a536dbd067370c27731bc75f4b
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"
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync
8fa1e8a8a8702ee38195fbe7ad5959bf971eb93bvboxsync BITS TEST_BITS
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync; The disassembler doesn't do imm32 right for 64-bit stuff, so disable it for now.
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync;%if TEST_BITS == 64
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync; %define WITH_64_BIT_TESTS
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync;%endif
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
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync%ifdef WITH_64_BIT_TESTS
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
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync%ifdef WITH_64_BIT_TESTS
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
4c0fd6e5274870a536dbd067370c27731bc75f4bvboxsync%ifdef WITH_64_BIT_TESTS
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
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; ADD
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; AND
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; BTC
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; BTR
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; BTS
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; CMPXCHG
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; CMPXCHG8B
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; CMPXCHG16B
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; DEC
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; INC
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; NEG
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; NOT
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; OR
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; SBB
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; SUB
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; XADD
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; XCHG
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync ; XOR
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync
2fc5865b6b7d3deff17bbc562cbda013d518961cvboxsync