This replaces _MSC_VER macro with _WIN32 because the
former one is for MSVC and Visual Studio only and is
not defined in mingw environment. Wherease, _WIN32
macro is the proper way to check Windows platform
irrespective of compiler toolchain.
See the following official link for more info
https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros
- Create a dummy .llvmasm section for bitcode
- Add [buildversion] directive for setting minos and sdk versions, e.g. [buildversion minos="10.14" sdk="10.14"]. This defaults to 10.5 on x64 and 10.4 on x86.
* preproc/nasm: Close the input file; addressed a few memory leaks.
* yasm.c: delete include paths before we exit
* cv-dbgfmt.c: Free cv_filename::filename too.
MONITORX has opcode "0F 01 FA".
rAX contains address to be monitored
ECX specifies optional extensions
EDX specifies optional hints
MWAITX has opcode "0F 01 FA".
EAX specifies optional hints
ECX specifies optional extensions
Public documentation: http://support.amd.com/TechDocs/24594.pdf
New CLZERO instruction support (for 32bit/64bit)
* clzero has opcode "0F 01 FC".
* clzero gets enabled with CPUID, 8000_0008, EBX[0] =1.
* clzero instruction zero's out the 64 byte cache line specified in rAX. Bits 5:0 of rAX are ignored
Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.
Redistributed under simplified 2-clause BSD licence
"-E" is too easily typoed for "-e", and is dangerous because it overwrites
the following filename. "-E" is retained as a synonym for "-e".
This change also makes yasm command-line consistent with NASM.
It appears that GNU binutils always interpret PE/COFF object files as if
they were executable files, namely that the paddr field is a rounded-up
section size (aka virtual size). Yasm previously followed the Microsoft
specification which stated that for object files this field should be set
to the "physical address" of the section (e.g. the sum of all previous
section sizes). However, several other sources state this field should be
set to 0 in object files, and it appears that Microsoft tools accept this.
For compatibility with the GNU tools, this commit makes Yasm always set the
paddr/vsize field to 0.
This commit also eliminates the COFF_SET_VMA customization for COFF
files. Previously this was used to set LMA=VMA in COFF, but LMA=0 in PE.
Now that VMA is always 0, this is no longer required (LMA=VMA=0 in both
PE and COFF).