static std::string computeDataLayout(const SparcSubtarget &ST) { // Sparc is big endian. std::string Ret = "E-m:e"; // Some ABIs have 32bit pointers. if (!ST.is64Bit()) Ret += "-p:32:32"; // Alignments for 64 bit integers. Ret += "-i64:64"; // On SparcV9 128 floats are aligned to 128 bits, on others only to 64. // On SparcV9 registers can hold 64 or 32 bits, on others only 32. if (ST.is64Bit()) Ret += "-n32:64"; else Ret += "-f128:64-n32"; if (ST.is64Bit()) Ret += "-S128"; else Ret += "-S64"; return Ret; }
SparcFrameLowering::SparcFrameLowering(const SparcSubtarget &ST) : TargetFrameLowering(TargetFrameLowering::StackGrowsDown, ST.is64Bit() ? 16 : 8, 0, ST.is64Bit() ? 16 : 8) {}