Commit graph

1534 commits

Author SHA1 Message Date
MITSUNARI Shigeo
b536ef6482 v7.07 2024-06-11 17:00:40 +09:00
MITSUNARI Shigeo
e1e3a1369e update cpu (sde does not support tsxldtrk) 2024-06-11 16:56:08 +09:00
MITSUNARI Shigeo
f3ab810ba8 add detection of tsxldtrk 2024-06-11 16:45:37 +09:00
MITSUNARI Shigeo
6f1ee1f12a add test of xresldtrk/xsusldtrk 2024-06-11 16:45:26 +09:00
MITSUNARI Shigeo
8e0ccba17a add xresldtrk/xsusldtrk 2024-06-11 16:45:09 +09:00
MITSUNARI Shigeo
0744f2a37c Merge branch 'github-actions' of https://github.com/scribam/xbyak into scribam-github-actions 2024-06-11 16:20:47 +09:00
scribam
016ca75ed2 Update actions/checkout to v4 2024-05-31 10:08:55 +02:00
MITSUNARI Shigeo
f38885229a [doc] add CONTRIBUTING.md 2024-05-09 13:37:02 +09:00
MITSUNARI Shigeo
05bdd062f0 [doc] fix typo 2024-03-26 14:59:40 +09:00
MITSUNARI Shigeo
80477f6353 Merge branch 'dev' 2024-03-15 11:05:14 +09:00
Andrea Pappacoda
6c593b9a10
build(meson): arch-independent fixes
This patch fixes a couple of issues introduced in commits
c7c1eac070 and
9f53572915:

- Dropped `dataonly: true` from `pkgconfig.generate()`, since it
  generates a .pc file unsuitable for libraries. Instead, I've just set
  `install_dir` to `$datadir/pkgconfig`, which generates the following:

      $ cat /usr/share/pkgconfig/xbyak.pc
      prefix=/usr
      includedir=${prefix}/include

      Name: xbyak
      Description: JIT assembler for x86(IA32), x64(AMD64, x86-64)
      URL: https://github.com/herumi/xbyak
      Version: 7.06
      Cflags: -I${includedir}

- Changed `share/cmake/xbyak` to
  `get_option('datadir')/'cmake'/meson.project_name()` to avoid
  hardcoding "share" as the datadir.

- Added `arch_independent: true` to the
  `cmake.write_basic_package_version_file()` call so that the generated
  CMake version file doesn't contain arch-specific checks unsuitable for
  a file located in /usr/share/cmake.
2024-03-09 21:51:48 +01:00
MITSUNARI Shigeo
fc183427e8 v7.06 2024-03-07 17:18:54 +09:00
MITSUNARI Shigeo
487a6d14c5 Merge branch 'dev' 2024-03-07 17:09:21 +09:00
Zbigniew Jędrzejewski-Szmek
9f53572915 Install cmake files into an arch-independent directory
The justification is similar as for the .pc file: the include directory
is arch-independent, so the cmake description should be too.
2024-03-06 18:25:01 +01:00
Zbigniew Jędrzejewski-Szmek
c7c1eac070 Make xbyak.py installation location arch-independent
I was investigating an issue with the Fedora package build:
builds on i686 would yield a package with /usr/lib/pkgconfig/xbyak.pc,
while builds on amd64 would yield a package with /usr/lib64/pkgconfig/xbyak.pc.

xbyak is arch-indepdent, in the sense of the installed payload being identical
on all architectures and located in a non-arch-specific directory (/usr/inlude).
The .pc file should be arch-independent too. Right now, if we install the
package from a different architecture, we would find the files in /usr/include,
but not the .pc file. (E.g. on amd64 the pkg-config search path is
/usr/lib64/pkgconfig:/usr/share/pkgconfig, so /usr/lib/pkgconfig/xbyak.pc will
not be found.) So install the file to $prefix/pkgconfig (usually
/usr/share/pkgconfig) so it will be found properly.

We need to specify 'includedir' in the variable list for pkgconfig.generate(),
because by default meson does not include this variable when dataonly:true
is used. The $prefix/include pattern is evaluated in meson, to handle the
case where the user specified an include_dir as absolute path.
2024-03-06 17:48:12 +01:00
MITSUNARI Shigeo
9c0f5d3ecb Merge branch 'dev' 2024-02-22 16:42:11 +09:00
MITSUNARI Shigeo
af349a5dbb Merge branch 'koscrob-core-and-cache-detection-improvements' into dev 2024-02-22 16:28:33 +09:00
MITSUNARI Shigeo
9fc6a7ca81 recover mask 2024-02-22 13:21:22 +09:00
MITSUNARI Shigeo
6eb3dddec7 remove a blank 2024-02-22 13:18:44 +09:00
MITSUNARI Shigeo
f7cc04ea46 define IntelCpuTopologyLevel for backward compatibility 2024-02-22 13:18:44 +09:00
MITSUNARI Shigeo
3dff87f6fa remove unused variables 2024-02-22 13:18:44 +09:00
MITSUNARI Shigeo
e1e9e85815 rename compareVendorString to isEqualStr 2024-02-22 13:18:14 +09:00
MITSUNARI Shigeo
776ce053dc tweak compareVendorString 2024-02-22 13:00:12 +09:00
MITSUNARI Shigeo
78d878500e use 32bitAsBE 2024-02-22 12:55:58 +09:00
koscrob
16a2efaf7f Changed the vendor string detection code, added the compareVendorString() helper function. 2024-02-21 10:31:20 +01:00
koscrob
53be4995fb Improvements to core count and cache hierarchy detection.
FIX: setCacheHierarchy() threw a div-by-zero exception on legacy AMD CPUs.
Improved detection of cores/threads for legacy AMD CPUs in setNumCores().
Improved cache hierarchy detection for AMD and Intel CPUs in setCacheHierarchy().
FIX: Typo "coresSharignDataCache_" -> "coresSharingDataCache_".
Compare the full manufacturer ID strings to detect CPU manufacturers (AMD or Intel).
getCpuid() now calls getCpuidEx() internally.
setFamily() now utilizes extractBit().
FIX: If CPU family == 6 then only add extModel to model on Intel CPUs.
Renamed IntelCpuTopologyLevel to CpuTopologyLevel as both Intel and modern AMD CPUs support the feature.
Removed no longer used functions: mask() and get32bitAsBE().
Removed no longer used x2APIC_supported_ private field.
2024-02-19 21:20:30 +01:00
MITSUNARI Shigeo
63e6ee92cc v7.05.1 2024-02-11 10:26:03 +09:00
MITSUNARI Shigeo
021e70c97f Merge branch 'dev' 2024-02-11 10:15:10 +09:00
MITSUNARI Shigeo
88b0ca1271 Merge branch 'koscrob-fix-extractBit' into dev 2024-02-11 10:10:51 +09:00
koscrob
08fe5c8325 FIX: extractBit() off-by-one issue.
Currently while extracting bits, bit "end" is excluded from the result while, based on usage, it is expected to be included.
2024-02-09 15:16:04 +01:00
MITSUNARI Shigeo
49c83263a8 Merge branch 'dev' 2024-01-31 20:02:43 +09:00
MITSUNARI Shigeo
1201541213 Merge branch 'nivas-x86-master' into dev 2024-01-31 09:33:46 +09:00
nivas-x86
1d75fb35c3
support align for auto_grow 2024-01-29 17:43:37 -08:00
MITSUNARI Shigeo
086530ed13 Merge branch 'bylaws-patch-1' 2024-01-15 08:33:01 +09:00
Billy Laws
7219e234cb
support building for arm64ec
ARM64EC is a custom ABI designed to allow ARM64 code to directly call into x64 code and vice-versa. In order to facilitate this, __x86_64__ (in llvm) and _M_X64 (in msvc) are both defined, but most x64 intrinsics aren't supported, so don't attempt to use them.
2024-01-11 23:52:08 +00:00
MITSUNARI Shigeo
2ce465bbca Merge branch 'dev' 2024-01-03 20:13:13 +09:00
MITSUNARI Shigeo
0b3f360eb6 v7.05 2024-01-03 20:10:46 +09:00
MITSUNARI Shigeo
66f22b7a4e update doc 2024-01-03 20:10:28 +09:00
MITSUNARI Shigeo
13ee4e19f1 use opSetCC for setCC 2024-01-03 19:58:05 +09:00
MITSUNARI Shigeo
383866b426 use opMR with APX 2024-01-03 19:39:44 +09:00
MITSUNARI Shigeo
d6e6e6f851 tweak 2024-01-03 19:28:45 +09:00
MITSUNARI Shigeo
a7b02ac80d RAO_INT supports APX 2024-01-03 17:10:32 +09:00
MITSUNARI Shigeo
26840492c3 use Address.immSize 2024-01-03 09:21:03 +09:00
MITSUNARI Shigeo
e2b40a33e8 refactor Address class 2024-01-03 09:11:58 +09:00
MITSUNARI Shigeo
e1b6896c22 Merge branch 'dev' 2023-12-28 20:42:27 +09:00
MITSUNARI Shigeo
c0888cc45f v7.04 2023-12-28 20:42:12 +09:00
MITSUNARI Shigeo
7d9c828354 refactor rex 2023-12-28 20:33:21 +09:00
MITSUNARI Shigeo
b3e27734be apx supports 0x0f opecode with rex2 2023-12-28 20:18:15 +09:00
MITSUNARI Shigeo
2e7b62d784 bswap supports apx 2023-12-28 17:59:28 +09:00
MITSUNARI Shigeo
2e93baa6a6 Merge branch 'dev' 2023-12-27 11:48:00 +09:00