We need to have seg_mapping_table aligned on its natural alignement (ptr size). When...
authorMaoni0 <maonis@microsoft.com>
Wed, 15 Jun 2016 20:37:35 +0000 (13:37 -0700)
committerMaoni0 <maonis@microsoft.com>
Tue, 21 Jun 2016 00:09:53 +0000 (17:09 -0700)
commitd31472002216bd46f2f54549207bda66ad720b38
treec59bddb6e9aced3bc90484264afee0b1ee7ad5f6
parent59d51bb344b04d99bb132ce85541f9203cd9cfcf
We need to have seg_mapping_table aligned on its natural alignement (ptr size). When it's not aligned,
aside from the perf problem, we also have a functional problem when an address that's not on a heap
segment is passed - we could read an intermediate value which would cause an AV. If the address is
on a heap segment it means we are guaranteed to read a ptr size atomically. This only affects functions
like IsHeapPointer which can be run when EE is not suspended.

Commit migrated from https://github.com/dotnet/coreclr/commit/6a4e02a4ded34e385b7249ed5972b49ad97f354a
src/coreclr/src/gc/gc.cpp