rbtree: add rb_search_exact()
[nasm.git] / macros / masm.mac
blobda7e6eeada6d1c16e3cbea892fa479ec03177395
1 ;; --------------------------------------------------------------------------
2 ;;
3 ;;   Copyright 2019 The NASM Authors - All Rights Reserved
4 ;;   See the file AUTHORS included with the NASM distribution for
5 ;;   the specific copyright holders.
6 ;;
7 ;;   Redistribution and use in source and binary forms, with or without
8 ;;   modification, are permitted provided that the following
9 ;;   conditions are met:
11 ;;   * Redistributions of source code must retain the above copyright
12 ;;     notice, this list of conditions and the following disclaimer.
13 ;;   * Redistributions in binary form must reproduce the above
14 ;;     copyright notice, this list of conditions and the following
15 ;;     disclaimer in the documentation and/or other materials provided
16 ;;     with the distribution.
18 ;;     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
19 ;;     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
20 ;;     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 ;;     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 ;;     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23 ;;     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 ;;     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25 ;;     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26 ;;     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 ;;     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 ;;     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29 ;;     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30 ;;     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 ;; --------------------------------------------------------------------------
35 ;; masm.mac
37 ;; Very limited MASM compatiblity package; intended to be used
38 ;; primarily with machine-generated code. It does not include any
39 ;; "programmer friendly" shortcuts, nor does it in any way support
40 ;; ASSUME, symbol typing, or MASM-style structures.
43 USE: masm
45 %unimacro segment 1+
47 %imacro segment 0-1+.nolist
48   %define __?SECT?__ [segment %00 %1]
49         __?SECT?__
50 %endmacro
52 %imacro ends 0+.nolist
53   %pragma ignore ends %00
54 %endmacro
56 %imacro proc 0-*.nolist
57   %rep %0
58     %ifidni %1,far
59       %idefine ret retf
60     %else
61       %idefine ret retn
62     %endif
63     %rotate 1
64   %endrep
65 %endmacro
67 %imacro endp 0.nolist
68   %pragma ignore endp %00
69   %undef ret
70 %endmacro
72 %idefine ptr __?masm_ptr?__
73 %idefine flat __?masm_flat?__   ; is %idefine really correct here?
74 %idefine offset
76 %imacro end 0+.nolist
77         ; Nothing
78 %endmacro
80 %idefine tbyte tword
82         default rel