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)
commit6a4e02a4ded34e385b7249ed5972b49ad97f354a
treef7639bccc0c7b60133cec8d27210b6962fa6b1fa
parentf6ad954733e4c8f0bbb342bc3412747663905cb2
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.
src/gc/gc.cpp