[PATCH] D28990: Align i128 to 16 bytes

Simonas Kazlauskas via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 24 17:32:02 PST 2017


nagisa added a comment.

This is for ARM: http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055c/IHI0055C_beta_aapcs64.pdf;
This is for x64: https://msdn.microsoft.com/en-us/library/zthk2dkh.aspx (protip: needs careful reading because __int128 is not supported by MSVC directly and is not explicitly mentioned by the docs, but wording is unambiguous enough to make conclusions);
SPARC (https://docs.oracle.com/cd/E26502_01/pdf/E28387.pdf) does not mention anything really and there’s some encryption involving “slots” and whatnot in that document, but

> For 64-bit code, double and long long datat types occupy just one slot, but long double and double complex data occupy two slots, and these slots are aligned (slot number modulo 2 equals 0), skipping a slot if necessary for alignment.

seems to indicate that stuff ought to be aligned to 2 times of whatever slots ought to mean;


https://reviews.llvm.org/D28990





More information about the llvm-commits mailing list