The CLR does not create a separate native code for reference types because all reference types are of same size(32 bits or 64 bits) and CLR creates a specific native code for value types because they differ in size.
Though int32 and uint32 are of same size, CLR generates a separate native code for each.
Why is this so?