diff --git a/src/bin/jbc2mpl b/src/bin/jbc2mpl index 477ac365d678ee81f9720466d573aeed4a1492ef..f071e5c511b63e3356e24c0a83381256761c3433 100755 Binary files a/src/bin/jbc2mpl and b/src/bin/jbc2mpl differ diff --git a/src/bin/maple b/src/bin/maple index 5b67753cf66d8a5c78c780d7e60edde8c0c3feda..7a2379f40f8ac5c860f6825318d908e28962cbd4 100755 Binary files a/src/bin/maple and b/src/bin/maple differ diff --git a/src/bin/mplcg b/src/bin/mplcg index 7d24e86ae8d41cd243ad18dc7a3e56269b4c7fab..1496426867c6793ab6da140a280ceec6815fc0cd 100755 Binary files a/src/bin/mplcg and b/src/bin/mplcg differ diff --git a/src/maple_driver/src/maple_comb_compiler.cpp b/src/maple_driver/src/maple_comb_compiler.cpp index 7f9120b6d5aea6fd241e97451ae814a0b72c4c4f..8eff1f77eb24432d3681b174296682e9e3dac6a6 100644 --- a/src/maple_driver/src/maple_comb_compiler.cpp +++ b/src/maple_driver/src/maple_comb_compiler.cpp @@ -261,4 +261,4 @@ ErrorCode MapleCombCompiler::Compile(const MplOptions &options, MIRModulePtr &th memPoolCtrler.DeleteMemPool(optMp); return nErr; } -} // namespace maple \ No newline at end of file +} // namespace maple diff --git a/src/maple_ir/include/intrinsics.def b/src/maple_ir/include/intrinsics.def index bf6c0ec63b4c023eeaf688911cae96ed092069b1..50d370087b0466c9ea52cc24803d3722b0b47dd8 100644 --- a/src/maple_ir/include/intrinsics.def +++ b/src/maple_ir/include/intrinsics.def @@ -25,12 +25,14 @@ DEF_MIR_INTRINSIC(MPL_GET_VTAB_FUNC,\ "MCC_getFuncPtrFromVtab", kIntrnUndef, kArgTyA64, kArgTyDynany, kArgTyDynany, kArgTyUndef, kArgTyUndef, kArgTyUndef, kArgTyUndef) DEF_MIR_INTRINSIC(MPL_READ_OVTABLE_ENTRY,\ "__mpl_const_offset", INTRNISPURE, kArgTyA32, kArgTyDynany, kArgTyUndef, kArgTyUndef, kArgTyUndef, kArgTyUndef, kArgTyUndef) +DEF_MIR_INTRINSIC(MPL_READ_OVTABLE_ENTRY2,\ + "__mpl_const_offset2", INTRNISPURE, kArgTyA32, kArgTyDynany, kArgTyDynany, kArgTyUndef, kArgTyUndef, kArgTyUndef, kArgTyUndef) DEF_MIR_INTRINSIC(MPL_READ_OVTABLE_ENTRY_LAZY,\ "__mpl_const_offset_lazy", INTRNNOSIDEEFFECT, kArgTyA32, kArgTyDynany, kArgTyUndef, kArgTyUndef, kArgTyUndef, kArgTyUndef, kArgTyUndef) DEF_MIR_INTRINSIC(MPL_READ_OVTABLE_ENTRY_VTAB_LAZY,\ - "__mpl_const_offset_vtab_lazy", INTRNISPURE, kArgTyA32, kArgTyDynany, kArgTyDynany, kArgTyUndef, kArgTyUndef, kArgTyUndef, kArgTyUndef) + "__mpl_const_offset_vtab_lazy", INTRNISPURE, kArgTyA32, kArgTyDynany, kArgTyDynany, kArgTyDynany, kArgTyUndef, kArgTyUndef, kArgTyUndef) DEF_MIR_INTRINSIC(MPL_READ_OVTABLE_ENTRY_FIELD_LAZY,\ - "__mpl_const_offset_field_lazy", INTRNISPURE, kArgTyA32, kArgTyDynany, kArgTyDynany, kArgTyUndef, kArgTyUndef, kArgTyUndef, kArgTyUndef) + "__mpl_const_offset_field_lazy", INTRNISPURE, kArgTyA32, kArgTyDynany, kArgTyDynany, kArgTyDynany, kArgTyUndef, kArgTyUndef, kArgTyUndef) DEF_MIR_INTRINSIC(MPL_BOUNDARY_CHECK,\ "", INTRNISJAVA | INTRNNOSIDEEFFECT, kArgTyVoid, kArgTyU1, kArgTyUndef, kArgTyUndef, kArgTyUndef, kArgTyUndef, kArgTyUndef) diff --git a/src/maple_me/include/me_ir.h b/src/maple_me/include/me_ir.h index 9b37cfdedc637d66fb77f93ca57d27e9411172c9..04ec78cb049e3f8dd1c3b2e37beb0f003af2dba9 100644 --- a/src/maple_me/include/me_ir.h +++ b/src/maple_me/include/me_ir.h @@ -1061,7 +1061,13 @@ class NaryMeExpr : public MeExpr { return opnds; } + void SetOpnds(MapleVector &newOpnds) { + ASSERT(newOpnds.size() == GetNumOpnds(), "inconsistent operand numbers"); + opnds = newOpnds; + } + void SetOpnd(size_t idx, MeExpr *val) override { + ASSERT(idx < opnds.size(), "out of range in NaryMeStmt::GetOpnd"); opnds[idx] = val; }