Index: contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp =================================================================== --- contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp +++ contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp @@ -3855,6 +3855,19 @@ int getDwarfEHStackPointer(CodeGen::CodeGenModule &M) const { return 31; } + bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF, + llvm::Value *Address) const override { + llvm::Value *Eight8 = llvm::ConstantInt::get(CGF.Int8Ty, 8); + llvm::Value *Sixteen8 = llvm::ConstantInt::get(CGF.Int8Ty, 16); + + // 0-30 are the 31 gp registers. 31 is stack pointer. + AssignToArrayRange(CGF.Builder, Address, Eight8, 0, 31); + // 64-95 are the FP/SIMD registers. + AssignToArrayRange(CGF.Builder, Address, Sixteen8, 64, 95); + + return false; + } + virtual bool doesReturnSlotInterfereWithArgs() const { return false; } }; }