This patch adds -p270:32:32-p271:32:32-p272:64:64 to the X86 data layout string, to be used for implementing mixed pointer sizes.
This will be used for an upcoming change that uses these three address spaces which will be used to implement the microsoft extensions ptr32, ptr64, sptr, and uptr. The address spaces specify whether a pointer is 32 bit sign extended, 32 bit zero extended, or 64 bit.
This patch also changes the datalayout string in tests that contain a datalayout string, because the datalayout specified in the llvm module has to match the target datalayout.
The numbers 270-272 are more or less arbitrary; I picked them because they're near 256-258, which are the current existing address spaces.
I'd expect that this should be guarded by whatever flag is used for ms extensions.
Put differently, i i'm not sure that when those extensions are not enabled, the datalayout should be changed?