- Jul 17, 2020
-
-
Jacob Bramley authored
This is the last major version that builds with C++98 or C++11. Future major releases will require C++14. Change-Id: Ic01e45e80d1e0ab8230825884a6ac5b64abae0d3
-
- Jun 22, 2020
-
-
Jacob Bramley authored
The casts appear dangerous, since they would shorten the value in an implementation-defined way. They weren't actually dangerous, because each case was guarded by an `IsImm...` helper, but they are unnecessary, and removing them makes the code easier to audit. Also clarify some variable names in related functions. Change-Id: Ib565965e3e6c4c0683c79d68eac51771d9e8b667
-
- Jun 19, 2020
-
-
Ldpsw extends words to X register-sized destinations, so should only accept Register, rather than CPURegister. Change-Id: I4e876165413d374d334fd12eedcd6b90419c1d95
-
Change-Id: Iab1d669cb0cadb1628ef28fa01b1c18370e2d3d0
-
- Jun 11, 2020
-
-
Martyn Capewell authored
Remove assembler methods for PAC instructions that don't exist. These aren't implemented in the assembler, so only the header file is affected. Change-Id: I1b264a002211227989469bc5ed7234863c00d230
-
- Jun 05, 2020
-
-
Jacob Bramley authored
We treated this as a two-bit field <23:22>, with encodings recognised only when bit 23 was zero. The latest XML describes it as a one-bit field <22>. The decoder already excludes encodings with bit 23 set, so no behaviour is changed, except that the instruction masks (e.g. `AddSubImmediateFMask`) should work more consistently. This patch also renames `ShiftAddSub` to `ImmAddSubShift` to make it clear that it applies to "immediate" forms, and not to "shifted" form. Change-Id: Ieea2fc5c8a7cfb057983b7063372ee6f760d82a1
-
- Jun 02, 2020
-
-
Matthew Bentham authored
Use print style compatible with Python 2/3. Set text mode in popen so that textual regexps work. Change-Id: I079587afd0cf6c896ff5adb5dda3f2bc1fdeff4a
-
- May 11, 2020
-
-
Pierre Langlois authored
This code hasn't been used in a long time so let's remove it. If one needs to extract information from generated code, it's easy to add throw-away code to do it in the simulator, so having first-class support for this isn't crucial. Also, being tied to the decoder made the instrumentation support a little too limiting. Change-Id: Icf863a8b0bc19ac20bea3eb39e091c5e632982fc
-
- May 07, 2020
-
-
Jacob Bramley authored
This includes clang-tidy-4.0 and clang-format-4.0. Change-Id: I9c49002dee3c424e9745d68ba7dcfe10a858db12
-
- Apr 24, 2020
-
-
Jacob Bramley authored
This is primarily a documentation change, claiming the ability for us to add visitors even on minor version updates. This is necessary for adding support for most ISA extensions. To mitigate the inconvenience to use-cases that only examine a subset of visitors, this patch includes a variant of DecoderVisitor that provides default (empty) visitor implementations. Change-Id: I42281aaff95b23759868dee67bc3fc18ca8c726f
-
- Mar 13, 2020
-
-
Jacob Bramley authored
Change-Id: Ib62d836bbafc5945d916a981c639480a0bac6232
-
- Dec 17, 2019
-
-
Jacob Bramley authored
This should have been included in an earlier patch. Change-Id: I30f3404619915bd6bfa176a91eb21001059c5f4f
-
Jacob Bramley authored
Change-Id: I4984850a292b0a85994a111777409123508c7bb4
-
- Dec 03, 2019
-
-
Usama Arif authored
This CL removes the asserts which check whether the source registers are zero from the Csinc, Csinv and Csneg macroassembly functions. Change-Id: I82c0b7e71f790d4a4822870b58b78e108c6590dd
-
- Nov 08, 2019
-
-
Jacob Bramley authored
In particular, kUSCAT could appear in auxv, but would be ignored in the ID registers, causing a test failure. Change-Id: Id964ce4423bce4913aa4f75c077586a2e50d5caf
-
- Oct 07, 2019
-
-
Jacob Bramley authored
Change-Id: I591457992a42e493fc7c689c85b0b799f96e9de7
-
Jacob Bramley authored
The test ensures that authentication fails, but PAC collisions can make it succeed. In other tests, we handle this by repeating the test several times, and the same technique works here. Change-Id: I9deb8c6cca3f86a3a197f55e42b755fd6ecd0d25
-
- Oct 03, 2019
-
-
Jacob Bramley authored
Change-Id: Iace4a9bc13be28331f4992024d7b027304c7560d
-
- Oct 02, 2019
-
-
Jacob Bramley authored
This should fix a CI failure, which for some reason only manifests on the MacOS bot. Change-Id: Ia526c8ef8b478710720c7a13be586646f021fe1a
-
- Aug 09, 2019
-
-
Pierre Langlois authored
GCC9's stringop-truncation warning isn't happy about having the destination and the bound of a strncpy being equal since the resulting string will not be NULL-terminated: ~~~ src/aarch64/instrument-aarch64.cc: In constructor ‘vixl::aarch64::Counter::Counter(const char*, vixl::aarch64::CounterType)’: src/aarch64/instrument-aarch64.cc:35:10: error: ‘char* strncpy(char*, const char*, size_t)’ specified bound 256 equals destination size [-Werror=stringop-truncation] 35 | strncpy(name_, name, kCounterNameMaxLength); | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~ However, we manually NULL-terminate right after so we're actually fine. It doesn't hurt to fix the warning though by reducing the bound by 1. See the third paragraph from https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wstringop-truncation Change-Id: I74d37dbe13c0d04da9a24c71bc6ef6a92e8333ce
-
- Jul 31, 2019
-
-
Jacob Bramley authored
Notably, this removes some deprecated functions, and adds some documentation for some existing functions with slightly surprising behaviours. Change-Id: Ibd1f07986f04c4dad075dae69246369e7acf9030
-
- Jul 10, 2019
-
-
Jacob Bramley authored
Add MacroAssembler, Disassembler and Simulator benchmarks. These are superficially representative of real VIXL uses, but not based on real workloads. Change-Id: Ieda7d9f44cab1eb1f23ea5e8caa509982fa6740b
-
Jacob Bramley authored
Before this patch, some benchmarks would take much longer to run than others, and the iteration count argument would often need to be adjusted to find a reasonable compromise. Now, the command-line argument specifies the desired run-time, so that the same benchmarks can be used on all platforms. Argument parsing and result printing are now centralised, to reduce duplication, and to ensure that we use a consistent interface for future benchmarks. Change-Id: Ic4dd481402b2e556dadffef66f414af7ff3bd504
-
Jacob Bramley authored
Also, fix some issues that it found. We will enable more rules in the future. In particular, some google-* rules should already pass, but appear not to at the moment. Once we have enabled enough of these rules, we intend to drop the dependency on cpplint. Change-Id: I107231cf57b5500a3f1b623510419665589531dc
-
- Jul 08, 2019
-
-
Jacob Bramley authored
We haven't used TEARDOWN consistently in all of the tests. Since it doesn't actually do anything, it makes more sense to remove it than to try to use it everywhere. Change-Id: I5f0154ae35626bc66d4702c7d3894fd90feddb47
-
- Jul 05, 2019
-
-
- Introduced script to run clang-tidy. - Make clang_format use TestQueue / Test - Separate test_runner code from TestQueue / Test Change-Id: If2cffd2c76b0ab552ccf2d9a526fcc737c6e94c2
-
Jacob Bramley authored
We never use this, and it seems to have inconsistent behaviour when 'args' is an array. Change-Id: Ib6990acedf088a45024102421c5665b67dcab8dd
-
- Jul 01, 2019
-
-
Before this patch, lint.py would scan all C++ files present in HEAD (but with any modifications from the working directory), whilst clang_format.py would look at all C++ files without consulting Git. This patch introduces a `get_source_files` utility, now used by both scripts, which looks only at the file system. This means that lint.py will now scan untracked files, but since clang_format.py already did that (and would cause test.py to fail if they weren't properly formatted), this seems to be reasonable behaviour. The alternative -- looking at files known to Git -- is attractive, but it could be misleading because we scan the state of those files in the working directory, not in Git's HEAD. Change-Id: I88ab245c6452b5bdf3e8ffa3eabb223cc9339f3e
-
- Jun 27, 2019
-
-
Anthony Barbier authored
- Keep track of the tests which are skipped because they're known to fail. - Moved multithreading code in a separate module so it can be re-used. - Keep track of the tests which are skipped because the CPU is missing features. - Added --verbose mode Change-Id: I8832a1ac10738461eb5f4740e8bf060f13866132
-
- Jun 12, 2019
-
-
Jacob Bramley authored
Normally, the temporary file is removed when the test exits, so there's no way to know what was actually traced. Now, --disassemble and --trace-sim work as they do for other tests. Change-Id: Ie241647824fe28168108ae1d0a009c00db8963e6
-
- May 03, 2019
-
-
Pierre Langlois authored
If VIXL_NEGATIVE_TESTING is on, VIXL_ASSERT and VIXL_CHECK will throw exceptions. However, when building with C++11, destructors are implicitly marked as `noexcept` which means that throwing an exception from a destructor will terminate the program. Because of this we would fail to build with clang version 6 or higher because of warnings. And more imporantly, the AARCH32_DISASM_unbound_label negative test would fail when built with C++11. We missed this since test.py only builds negative tests with C++98 by default. To fix this, we have to mark all desctructors that can throw as `noexept(false)` using a macro. Change-Id: Ia22105df3ffa462fbe24db37f63f1558b671cf7b
-
- Apr 29, 2019
-
-
Jacob Bramley authored
Change-Id: I9ce8d094e8abeda06f1b4ac3649257011f40d57d
-
- Apr 25, 2019
-
-
Jacob Bramley authored
No new tests are included but this patch rewrites IncludesAliasOf(CPURegister) in terms of IncludesAliasOf(int) so that existing usage covers the fix. Change-Id: Idfc141a7b48548566e701c0a47cb17ad869540c4
-
- Apr 17, 2019
-
-
Jacob Bramley authored
This fixes 'CAN_RUN()' on platforms that lack kCRC32, as long as InferFromOS is implemented. Change-Id: Iedf9d86ba07ede88d3a45d466bce6059260bdf8d
-
- Apr 15, 2019
-
-
Jacob Bramley authored
VRegister::IsFPRegister() now returns true only for scalar H, S and D registers. CPURegister::IsFPRegister() now returns true for H registers, but since CPURegister doesn't carry lane information, it also returns true for vectors such as `v0.V2S()`. Future patches will encode lane information in CPURegister itself so that the behaviour can be consistent -- like VRegister::IsFPRegister() -- throughout. Change-Id: I5ad5aef5e9d80829ab359e72d542354e142cc292
-
Jacob Bramley authored
Change-Id: Ia43cd9e23736fa4130ab0416889289b559ee2467
-
- Apr 02, 2019
-
-
Jacob Bramley authored
As before, we assume that all features available to the Simulator, but now we can execute tests on hardware when the necessary features are available (according to `CPUFeatures::InferFromOS()`). Change-Id: I7ae3712fee912bad630977cc4e71103dd337c1d2
-
- Mar 29, 2019
-
-
In MaskAddresses sed is used to preprocess traces. In AOSP switching to use a toybox sed instead of GNU sed for build tools was done. Command line options and regular expressions for GNU sed don't work for the toybox sed causing test failures: 1. Toybox sed does not support '--in-place --regexp-extended'. 2. Toybox sed does not support hexadecimal expressions. The CL changes MaskAddresses to work with toybox sed: 1. Use '-i -E' instead of '--in-place --regexp-extended' because they have the same meaning. GNU sed also supports '-i -E' instead of '--in-place --regexp-extended'. 2. Encode the ESC character directly in the source. As the CL makes some macros redundant the macros are removed. Change-Id: I072e59ed765adff574c8890eb8610799602a1b78
-
- Mar 26, 2019
-
-
Separate asm tests into FP, NEON and remainder to make the file more manageable and faster to build. Change-Id: I497910cd02da6f124e3e1e6a92e9a1f992981292
-
- Mar 21, 2019
-
-
Jacob Bramley authored
This also includes CPUFeatures::InferFromIDRegisterEmulation since that is the mechanism used for recent features in Linux. This has been checked against the documented behaviours, but has not been tested for many of the recent features. Change-Id: I94d9ee05f225f12f5eb72f9d30f23ec236a38d53
-