diff --git a/src/mapleall/maple_be/src/cg/emit.cpp b/src/mapleall/maple_be/src/cg/emit.cpp index cb5fb979431fe61d76c3a2f985e745971043ba61..a5cee7346d887eaa3e558f209bcd74e3634119ec 100644 --- a/src/mapleall/maple_be/src/cg/emit.cpp +++ b/src/mapleall/maple_be/src/cg/emit.cpp @@ -3208,11 +3208,6 @@ void Emitter::EmitDIAttrValue(DBGDie *die, DBGDieAttr *attr, DwAt attrName, DwTa case DW_FORM_exprloc: { DBGExprLoc *elp = attr->GetPtr(); switch (elp->GetOp()) { - case DW_OP_reg29: - EmitHexUnsigned(1); - Emit("\n\t.byte "); - EmitHexUnsigned(elp->GetOp()); - break; case DW_OP_call_frame_cfa: EmitHexUnsigned(1); Emit("\n\t.byte "); @@ -3488,7 +3483,7 @@ void Emitter::SetupDBGInfo(DebugInfo *mirdi) { switch (diae->GetTag()) { case DW_TAG_subprogram: { DBGExprLoc *exprloc = emitter->memPool->New(emitter->GetCG()->GetMIRModule()); - exprloc->GetSimpLoc()->SetDwOp(DW_OP_reg29); + exprloc->GetSimpLoc()->SetDwOp(DW_OP_call_frame_cfa); die->SetAttr(DW_AT_frame_base, exprloc); } break; case DW_TAG_structure_type: diff --git a/src/mapleall/maple_ir/src/debug_info.cpp b/src/mapleall/maple_ir/src/debug_info.cpp index 7e4ffa173fec4b0a7b6fd842ff0ce5f651f57c62..3441f2b2e5cd8116656839077200411fcb33a6a2 100644 --- a/src/mapleall/maple_ir/src/debug_info.cpp +++ b/src/mapleall/maple_ir/src/debug_info.cpp @@ -97,7 +97,7 @@ DBGDieAttr *DBGDie::AddGlobalLocAttr(DwAt at, DwForm form, uint64 val) { } DBGDieAttr *DBGDie::AddFrmBaseAttr(DwAt at, DwForm form) { - DBGExprLoc *p = module->GetMemPool()->New(module, DW_OP_reg29); + DBGExprLoc *p = module->GetMemPool()->New(module, DW_OP_call_frame_cfa); DBGDieAttr *attr = module->GetDbgInfo()->CreateAttr(at, form, reinterpret_cast(p)); AddAttr(attr); return attr; @@ -1168,7 +1168,6 @@ size_t DBGDieAttr::SizeOf(DBGDieAttr *attr) { CHECK_FATAL(ptr != (DBGExprLoc*)(0xdeadbeef), "wrong ptr"); switch (ptr->GetOp()) { case DW_OP_call_frame_cfa: - case DW_OP_reg29: return k2BitSize; // size 1 byte + DW_OP_call_frame_cfa 1 byte case DW_OP_fbreg: { // DW_OP_fbreg 1 byte