1 ;;;;------------------------------------------------------------------
3 ;;;; Copyright (C) 2000,
4 ;;;; Department of Computer Science, University of Tromso, Norway
6 ;;;; Filename: ia-x86-instr-bit.lisp
7 ;;;; Description: Bit operations.
8 ;;;; Author: Frode Vatvedt Fjeld <frodef@acm.org>
9 ;;;; Created at: Tue Feb 1 20:03:30 2000
10 ;;;; Distribution: See the accompanying file COPYING.
12 ;;;; $Id: instr-bit.lisp,v 1.2 2004/01/16 11:54:14 ffjeld Exp $
14 ;;;;------------------------------------------------------------------
16 (in-package "IA-X86-INSTR")
18 ;;; ----------------------------------------------------------------
20 ;;; ----------------------------------------------------------------
22 (def-instr bsf
(instruction)) ; bit scan forward
23 (def-instr bsfw
(bsf) (:r
#c
(#x0fbc
2) (r/m16 r16
) :operand-mode
:16-bit
))
24 (def-instr bsfl
(bsf) (:r
#c
(#x0fbc
2) (r/m32 r32
) :operand-mode
:32-bit
))
26 (def-instr bsr
(instruction)) ; bit scan reverse
27 (def-instr bsrw
(bsr) (:r
#c
(#x0fbd
2) (r/m16 r16
) :operand-mode
:16-bit
))
28 (def-instr bsrl
(bsr) (:r
#c
(#x0fbd
2) (r/m32 r32
) :operand-mode
:32-bit
))
32 (def-instr bt
(instruction))
35 (:r
#c
(#x0fa3
2) (r16 r
/m16
) :operand-mode
:16-bit
)
36 (:digit
(#c
(#x0fba
2) 4) 1 (imm8 r
/m16
) :operand-mode
:16-bit
))
39 (:r
#c
(#x0fa3
2) (r32 r
/m32
) :operand-mode
:32-bit
)
40 (:digit
(#c
(#x0fba
2) 4) 1 (imm8 r
/m32
) :operand-mode
:32-bit
))
43 ;;; bit test and complement
45 (def-instr btc
(instruction))
48 (:r
#c
(#x0fbb
2) (r16 r
/m16
) :operand-mode
:16-bit
)
49 (:digit
(#c
(#x0fba
2) 7) 1 (imm8 r
/m16
) :operand-mode
:16-bit
))
52 (:r
#c
(#x0fbb
2) (r32 r
/m32
) :operand-mode
:32-bit
)
53 (:digit
(#c
(#x0fba
2) 7) 1 (imm8 r
/m32
) :operand-mode
:32-bit
))
56 ;;; bit test and reset
58 (def-instr btr
(instruction))
61 (:r
#c
(#x0fb3
2) (r16 r
/m16
) :operand-mode
:16-bit
)
62 (:digit
(#c
(#x0fba
2) 6) 1 (imm8 r
/m16
) :operand-mode
:16-bit
))
65 (:r
#c
(#x0fb3
2) (r32 r
/m32
) :operand-mode
:32-bit
)
66 (:digit
(#c
(#x0fba
2) 6) 1 (imm8 r
/m32
) :operand-mode
:32-bit
))
70 (def-instr bts
(instruction))
73 (:r
#c
(#x0fab
2) (r16 r
/m16
) :operand-mode
:16-bit
)
74 (:digit
(#c
(#x0fba
2) 5) 1 (imm8 r
/m16
) :operand-mode
:16-bit
))
77 (:r
#c
(#x0fab
2) (r32 r
/m32
) :operand-mode
:32-bit
)
78 (:digit
(#c
(#x0fba
2) 5) 1 (imm8 r
/m32
) :operand-mode
:32-bit
))