1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
;; SPDX-License-Identifier: BSD-2-Clause
;; Copyright 1996-2025 The NASM Authors - All Rights Reserved
;;
;; List of global NASM directives and pragma operations codes
;;
;; ALL directives, including backend-specific, need to be added here.
;;
;; %pragma operation keywords (the second word, after facility) MAY
;; be added here too to assist in parsing, but it is not required.
;; See the definition of struct pragma in include/nasm.h.
;;
;; The same keyword can be used as a directive and as a pragma
;; operation, or as pragma operations in different namespaces. The
;; same D_ constant will be used for both, and this is perfectly
;; acceptable.
;;
;; In the future, this will be turned into a general list of keywords
;; to be parsed in special contexts.
;;
;; #special tokens are used to separate different classes of tokens.
;; Make sure to add new tokens to the correct place. If a token is used
;; in both a directive and in pragmas, they should be in the directive
;; part of the list. Tokens used in pragmas *only* go at the end of the
;; list.
;;
; --- General configuration
#name directive
#prefix D_
#errval D_unknown
#header directiv.h
; --- Special enum values
; These must be first in the list.
#special none = 0 ; Must be zero
#special unknown
#special corrupt
; --- True directives
; These tokens are accepted as directives by the global code or
; ignored if not implemented.
; --- Global directives
absolute
bits
common
cpu
debug
default
dollarhex
extern
float
global
list
pragma
required
sectalign
section
segment
static
warning
; --- Common output directives/pragmas
prefix
suffix
postfix
gprefix
gsuffix
gpostfix
lprefix
lsuffix
lpostfix
; --- Pseudo-op list, for the benefit of %isdirective
; Tokens put in this part will be rejected as either directives or
; pragmas
#special pseudo_ops
db
dw
dd
dq
dt
do
dy
dz
resb
resw
resd
resq
rest
reso
resy
resz
incbin
equ
; --- Format-specific directives
; Tokens put in this part of the list will be forwarded to the
; backend ofmt->directive() method.
#special ofmt
export ; outcoff, outobj
group ; outobj
import ; outobj
library ; outrdf2
map ; outbin
module ; outrdf2
org ; outbin
osabi ; outelf
safeseh ; outcoff
uppercase ; outieee, outobj
; --- The following are tokens used in pragmas, not actual directives.
; They will not be accepted as directives.
#special pragma_tokens
; --- Assembler pragmas
limit
; --- Listing pragmas
options
; --- Backend-specific pragmas
subsections_via_symbols ; macho
no_dead_strip ; macho
maxdump ; dbg
nodepend ; obj
noseclabels ; dbg
|