| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes the following compiler warnings with clang
tools/genperf/perfect.c:65:6: warning: a function definition without a prototype
is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
frontends/yasm/yasm.c:1379:23: warning: a function declaration without a prototype
is deprecated in all versions of C [-Wstrict-prototypes]
modules/objfmts/elf/elf.c:225:18: warning: a function declaration without a prototype
is deprecated in all versions of C [-Wstrict-prototypes]
|
| |
|
|
|
|
|
|
|
|
| |
yasm.c: Added -MD, -MT and -MP options similar to gcc. Also added --makedep-dos2unix-slash for helping users of NUG make (and similar) on Windows. The -MD option does both assembling and Makefile dependency generation in one go, which convenient and a little quicker.
nasm-preproc.c: Have to always gather dependencies to support -MD. Minimal cost.
Co-authored-by: knut st. osmundsen <bird-skylake@anduin.net>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Prior to this change: cpu_lcd(['AVX'], ['AVX','AES']) == ['AVX'],
causing AES instructions to be treated as unsupported when "cpu
WESTMERE" is used, or even "cpu WESTMERE AES".
Fixed by reordering ordered_cpu_features such that now,
cpu_lcd(['AVX'], ['AVX','AES']) == ['AES']. I don't know if there are
CPUs this would not be correct for, but this is the value that's
consistent with all extant CPU definitions.
|
| |
|
|
|
|
| |
(#112)
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
| |
These were caused by the addition of the segreg-in-64bit warning.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
| |
This allows suppressing the annoying 'segment register ignored in 64-bit mode'
warning.
|
| |
|
|\
| |
| | |
Optimization and improved @jix
|
| |
| |
| |
| |
| |
| | |
Changed segment:offset calculations so that vstart = 16*segment +
offset and vseg = segment instead of vstart = offset. Without this the
existing code to infer vstart addresses is not useful.
|
| |
| |
| |
| |
| |
| |
| | |
- Labels defined inside sections with vseg have segment:offset
addresses
- The section.<section name>.vstart label has a segment:offset
address
|
| |
| |
| |
| |
| | |
Generate addresses with a segment part for labels inside a section
with a defined vseg
|
| | |
|
| |
| |
| |
| |
| | |
- Added support for overriding certain functions
- Override value_finalize with dummy function for the bin objfmt
|
| |
| |
| |
| |
| |
| |
| | |
- Added vseg and ivseg to bin_section_data
- Parsing of vseg option as expression
- Conversion to integer ivsg
- Output of vseg in mapfiles
|
| |
| |
| |
| | |
Bug: http://tortall.lighthouseapp.com/projects/78676/tickets/269
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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).
|
| |
| |
| |
| |
| |
| | |
This caused cmake builds to not recognize "x64" as an object format.
Reported by: Brian Gladman
|
| | |
|
| | |
|
| |
| |
| |
| | |
[#268 state:resolved]
|
| | |
|
| | |
|
| |
| |
| |
| | |
Contributed by: Mark Charney @ Intel
|
| |
| |
| |
| |
| | |
Increases compilation speed of files with a large number of macros by
around 20x.
|
| |
| |
| |
| |
| |
| | |
Patch by: Knut St. Osmundsen
[#263 state:resolved]
|
| | |
|
| |
| |
| |
| | |
Patch by: Jason Garrett-Glaser <jason@x264.com>
|
| |
| |
| |
| |
| |
| | |
This can be used on global directives (e.g. global _foo:function) to
indicate the global is a function. This is useful for incremental
linking in MSVC.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
X32 is a 32-bit psABI for x86-64 with 32-bit pointer size. More info
can be found at:
https://sites.google.com/site/x32abi/
|
|\ \
| | |
| | | |
Fix a couple warnings when building on win32
|
| | | |
|
| | | |
|