@@ -45,8 +45,9 @@ int ICSetupInfo::totalSize() const {
4545static std::vector<std::pair<PatchpointInfo*, void * /* addr of func to call */ >> new_patchpoints;
4646
4747ICSetupInfo* ICSetupInfo::initialize (bool has_return_value, int num_slots, int slot_size, ICType type,
48- TypeRecorder* type_recorder) {
49- ICSetupInfo* rtn = new ICSetupInfo (type, num_slots, slot_size, has_return_value, type_recorder);
48+ TypeRecorder* type_recorder, bool has_const_arg_classes) {
49+ ICSetupInfo* rtn
50+ = new ICSetupInfo (type, num_slots, slot_size, has_return_value, type_recorder, has_const_arg_classes);
5051
5152 // We use size == CALL_ONLY_SIZE to imply that the call isn't patchable
5253 assert (rtn->totalSize () > CALL_ONLY_SIZE);
@@ -255,6 +256,7 @@ void processStackmap(CompiledFunction* cf, StackMap* stackmap) {
255256 start_addr, initialization_info.slowpath_start , initialization_info.continue_addr ,
256257 initialization_info.slowpath_rtn_addr , ic, StackInfo (scratch_size, scratch_rsp_offset),
257258 std::move (initialization_info.live_outs ));
259+ icinfo->setHasConstArgClasses (ic->has_const_arg_classes );
258260
259261 assert (cf);
260262 // TODO: unsafe. hard to use a unique_ptr here though.
@@ -330,9 +332,9 @@ ICSetupInfo* createDelattrIC(TypeRecorder* type_recorder) {
330332 return ICSetupInfo::initialize (false , 1 , 144 , ICSetupInfo::Delattr, type_recorder);
331333}
332334
333- ICSetupInfo* createCallsiteIC (TypeRecorder* type_recorder, int num_args, ICInfo* bjit_ic_info) {
334- return ICSetupInfo::initialize (true , numSlots (bjit_ic_info, 4 ), 640 + 48 * num_args, ICSetupInfo::Callsite ,
335- type_recorder);
335+ ICSetupInfo* createCallsiteIC (TypeRecorder* type_recorder, int num_args, ICInfo* bjit_ic_info, bool const_arg_classes ) {
336+ return ICSetupInfo::initialize (true , const_arg_classes ? 1 : numSlots (bjit_ic_info, 4 ), 640 + 48 * num_args,
337+ ICSetupInfo::Callsite, type_recorder, const_arg_classes );
336338}
337339
338340ICSetupInfo* createGetGlobalIC (TypeRecorder* type_recorder) {
0 commit comments