testcase?
On 24 February 2014 13:46, Roman Divacky <[email protected]> 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 > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
