;; 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