[llvm-dev] Representing X86 long double in Debug Info

Jonas Maebe via llvm-dev llvm-dev at lists.llvm.org
Tue Nov 3 00:16:38 PST 2015


Adrian Prantl via llvm-dev wrote on Mon, 02 Nov 2015:

> Looking at the code in clang CGDebugInfo just passes through the  
> width of the type as it is described by the TypeInfo, which in turn  
> is defined by the Target. At the moment I do not understand why an  
> x86_fp80 is reported to be 128 bits wide.

The x86-64 and Darwin/i386 ABI define the size of the 80 bits extended  
type in memory as 16 bytes. In all other i386 ABIs, it's defined as 12  
bytes. Delphi and, for compatibility reasons, the Free Pascal Compiler  
use 10 bytes (although FPC also has a "cextended" type that follows  
the official ABI for the platform). In FPC we use a [10 x i8] for all  
memory representations of the non-ABI 80 bits extended type.

So ideally, the bitsize of the type should be specifiable separately  
from the ABI/TypeInfo, as there may be multiple in the code.


Jonas


More information about the llvm-dev mailing list