r202059 - Implement getDwarfEHStackPointer() and initDwarfEHRegSizeTable() for sparcv9.
Rafael EspĂndola
rafael.espindola at gmail.com
Mon Feb 24 10:59:55 PST 2014
testcase?
On 24 February 2014 13:46, Roman Divacky <rdivacky at freebsd.org> wrote:
> Author: rdivacky
> Date: Mon Feb 24 12:46:27 2014
> New Revision: 202059
>
> URL: http://llvm.org/viewvc/llvm-project?rev=202059&view=rev
> Log:
> Implement getDwarfEHStackPointer() and initDwarfEHRegSizeTable() for sparcv9.
>
> Modified:
> cfe/trunk/lib/CodeGen/TargetInfo.cpp
>
> Modified: cfe/trunk/lib/CodeGen/TargetInfo.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/TargetInfo.cpp?rev=202059&r1=202058&r2=202059&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/TargetInfo.cpp (original)
> +++ cfe/trunk/lib/CodeGen/TargetInfo.cpp Mon Feb 24 12:46:27 2014
> @@ -5660,9 +5660,50 @@ class SparcV9TargetCodeGenInfo : public
> public:
> SparcV9TargetCodeGenInfo(CodeGenTypes &CGT)
> : TargetCodeGenInfo(new SparcV9ABIInfo(CGT)) {}
> +
> + int getDwarfEHStackPointer(CodeGen::CodeGenModule &M) const {
> + return 14;
> + }
> +
> + bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
> + llvm::Value *Address) const;
> };
> } // end anonymous namespace
>
> +bool
> +SparcV9TargetCodeGenInfo::initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
> + llvm::Value *Address) const {
> + // This is calculated from the LLVM and GCC tables and verified
> + // against gcc output. AFAIK all ABIs use the same encoding.
> +
> + CodeGen::CGBuilderTy &Builder = CGF.Builder;
> +
> + llvm::IntegerType *i8 = CGF.Int8Ty;
> + llvm::Value *Four8 = llvm::ConstantInt::get(i8, 4);
> + llvm::Value *Eight8 = llvm::ConstantInt::get(i8, 8);
> +
> + // 0-31: the 8-byte general-purpose registers
> + AssignToArrayRange(Builder, Address, Eight8, 0, 31);
> +
> + // 32-63: f0-31, the 4-byte floating-point registers
> + AssignToArrayRange(Builder, Address, Four8, 32, 63);
> +
> + // Y = 64
> + // PSR = 65
> + // WIM = 66
> + // TBR = 67
> + // PC = 68
> + // NPC = 69
> + // FSR = 70
> + // CSR = 71
> + AssignToArrayRange(Builder, Address, Eight8, 64, 71);
> +
> + // 72-87: d0-15, the 8-byte floating-point registers
> + AssignToArrayRange(Builder, Address, Eight8, 72, 87);
> +
> + return false;
> +}
> +
>
> //===----------------------------------------------------------------------===//
> // Xcore ABI Implementation
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list