sim: Get rid of the IsConforming type trait template.
authorGabe Black <gabe.black@gmail.com>
Wed, 3 Feb 2021 03:03:56 +0000 (19:03 -0800)
committerGabe Black <gabe.black@gmail.com>
Tue, 9 Feb 2021 00:36:00 +0000 (00:36 +0000)
commit6e976fbb4b6f38dc06877f25d4b2b47de90a307b
tree9d240f4d72b934fc203024380403b5f9f415cf38
parent0e0183f1d9158236aea4434ecb3a96d8c946e74d
sim: Get rid of the IsConforming type trait template.

The idea of this template was to distinguish types which should
grow/shrink based on the native size of the ABI in question. Or in other
words, if the ABI was 32 bit, the type should also be 32 bit, or 64 bit
and 64 bit.

Unfortunately, I had intended for Addr to be a conforming type (since
local pointers would be conforming), but uint64_t not to be. Since Addr
is defined as a typedef of uint64_t, the compiler would make *both*
types conforming, giving incorrect behavior on 32 bit systems.

Local pointers will need to be handled in a different way, likely with
the VPtr template, so that they will be treated correctly and not like
an explicitly 64 bit data type.

Change-Id: Idfdd5351260b48bb531a1926b93e0478a297826d
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/40495
Reviewed-by: Gabe Black <gabe.black@gmail.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/arch/arm/aapcs32.hh
src/arch/arm/reg_abi.hh
src/arch/sparc/se_workload.hh
src/arch/x86/linux/se_workload.hh
src/sim/syscall_abi.hh