Skip to content
Commit 3eb24e95 authored by Jacob Bramley's avatar Jacob Bramley
Browse files

Fix numerous issues related to CAS* instructions.

1. There was no test for 64-bit CASP.

2. The tests had some faulty code for obtaining aligned pointers. The
   natural alignment is sufficient anyway, so this patch removes the
   broken alignment code, and varies the addresses used to strengthen
   the test slightly.

   For the new CASP test, this patch uses the C++11 `alignas` specifier.

3. The simulation of CASP variants accessed memory in the wrong order.
   With this patch, the first-specified register in each pair accesses
   the lowest address.

4. We now check that `rs` and `rt` have the same format. Likewise for
   `rs2` and `rt2` in the CASP variants.

5. Register trace is improved: the `rs` (and `rs2`) update is traced as
   a memory read so we should suppress the log on the register write.
   This is what we do for normal loads.

Change-Id: I213c4b3de32305a8072fdc45357b67cbbf85ba9c
parent 102e7a5e
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment