; Standard macro set for NASM -*- nasm -*-

; Macros to make NASM ignore some TASM directives before the first include
; directive.

    %idefine IDEAL
    %idefine JUMPS
    %idefine P386
    %idefine P486
    %idefine P586
    %idefine END

; This is a magic token which indicates the end of the TASM macros
*END*TASM*MACROS*

; Note that although some user-level forms of directives are defined
; here, not all of them are: the user-level form of a format-specific
; directive should be defined in the module for that directive.

; These two need to be defined, though the actual definitions will
; be constantly updated during preprocessing.
%define __FILE__
%define __LINE__

%define __SECT__ [section .text] ; it ought to be defined, even if as nothing

%imacro section 1+.nolist
%define __SECT__ [section %1]
	  __SECT__
%endmacro
%imacro segment 1+.nolist
%define __SECT__ [segment %1]
	  __SECT__
%endmacro

%imacro absolute 1+.nolist
%define __SECT__ [absolute %1]
	  __SECT__
%endmacro

%imacro struc 1.nolist
%push struc
%define %$strucname %1
[absolute 0]
%$strucname:			; allow definition of `.member' to work sanely
%endmacro 
%imacro endstruc 0.nolist
%{$strucname}_size:
%pop
__SECT__
%endmacro

%imacro istruc 1.nolist
%push istruc
%define %$strucname %1
%$strucstart:
%endmacro
%imacro at 1-2+.nolist
	  times %1-($-%$strucstart) db 0
	  %2
%endmacro
%imacro iend 0.nolist
	  times %{$strucname}_size-($-%$strucstart) db 0
%pop
%endmacro

%imacro align 1-2+.nolist nop
%ifidni %2,nop
	  [align %1]
%else
	  times ($$-$) & ((%1)-1) %2
%endif
%endmacro
%imacro alignb 1-2+.nolist resb 1
	  times ($$-$) & ((%1)-1) %2
%endmacro

%imacro extern 1-*.nolist
%rep %0
[extern %1]
%rotate 1
%endrep
%endmacro

%imacro bits 1+.nolist
[bits %1]
%endmacro

%imacro use16 0.nolist
[bits 16]
%endmacro
%imacro use32 0.nolist
[bits 32]
%endmacro
%imacro use64 0.nolist
[bits 64]
%endmacro

%imacro global 1-*.nolist
%rep %0
[global %1]
%rotate 1
%endrep
%endmacro

%imacro common 1-*.nolist
%rep %0
[common %1]
%rotate 1
%endrep
%endmacro

%imacro cpu 1+.nolist
[cpu %1]
%endmacro

%imacro default 1+.nolist
[default %1]
%endmacro

; NASM compatibility shim
%define __OUTPUT_FORMAT__ __YASM_OBJFMT__

%ifidn __YASM_OBJFMT__,bin
%imacro org 1+.nolist
[org %1]
%endmacro
%endif

%ifidn __YASM_OBJFMT__,win32
%imacro export 1+.nolist
[export %1]
%endmacro

%imacro safeseh 1+.nolist
[safeseh %1]
%endmacro
%endif

%ifidn __YASM_OBJFMT__,win64
%define __YASM_WIN64__
%endif

%ifidn __YASM_OBJFMT__,x64
%define __YASM_WIN64__
%endif

%ifdef __YASM_WIN64__
%undef __YASM_WIN64__

%imacro export 1+.nolist
[export %1]
%endmacro

; Raw exception handling operations
%imacro proc_frame 1+.nolist
%1:
[proc_frame %1]
%endmacro

%if 0
; Disable these as they're too closely named to the macroized ones.
; MASM needs a preceding . to use these, so it seems reasonable for
; us to similarly require the [].
%imacro pushreg 1.nolist
[pushreg %1]
%endmacro

%imacro setframe 1-2.nolist
[setframe %1 %2]
%endmacro

%imacro allocstack 1.nolist
[allocstack %1]
%endmacro

%imacro savereg 2.nolist
[savereg %1 %2]
%endmacro

%imacro savexmm128 2.nolist
[savexmm128 %1 %2]
%endmacro

%imacro pushframe 0-1.nolist
[pushframe %1]
%endmacro

%imacro endprolog 0.nolist
[endprolog]
%endmacro
%endif

%imacro endproc_frame 0.nolist
[endproc_frame]
%endmacro

; Complex (macro) exception handling operations
; Mimics many macros provided by MASM's macamd64.inc
%imacro push_reg 1
push %1
[pushreg %1]
%endmacro

%imacro rex_push_reg 1
db 0x48
push %1
[pushreg %1]
%endmacro

%imacro push_eflags 0
pushfq
[allocstack 8]
%endmacro

%imacro rex_push_eflags 0
db 0x48
pushfq
[allocstack 8]
%endmacro

%imacro alloc_stack 1
sub rsp, %1
[allocstack %1]
%endmacro

%imacro save_reg 2
mov [rsp+%2], %1
[savereg %1 %2]
%endmacro

%imacro save_xmm128 2
movdqa [rsp+%2], %1
[savexmm128 %1 %2]
%endmacro

%imacro push_frame 0-1.nolist
[pushframe %1]
%endmacro

%imacro set_frame 1-2
%if %0==1
mov %1, rsp
%else
lea %1, [rsp+%2]
%endif
[setframe %1 %2]
%endmacro

%imacro end_prolog 0.nolist
[endprolog]
%endmacro

%imacro end_prologue 0.nolist
[endprolog]
%endmacro

%endif

%ifidn __YASM_OBJFMT__,elf
%define __YASM_ELF__
%endif

%ifidn __YASM_OBJFMT__,elf32
%define __YASM_ELF__
%endif

%ifidn __YASM_OBJFMT__,elf64
%define __YASM_ELF__
%endif

%ifdef __YASM_ELF__
%undef __YASM_ELF__
%imacro type 1+.nolist
[type %1]
%endmacro
%imacro size 1+.nolist
[size %1]
%endmacro
%imacro weak 1+.nolist
[weak %1]
%endmacro
%endif

%ifidn __YASM_OBJFMT__,rdf
%imacro library 1+.nolist
[library %1]
%endmacro
%imacro module 1+.nolist
[module %1]
%endmacro
%endif

