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
Loading
Please register or sign in to comment