604 // Schedule and Bundle the instructions |
604 // Schedule and Bundle the instructions |
605 void ScheduleAndBundle(); |
605 void ScheduleAndBundle(); |
606 |
606 |
607 // Build OopMaps for each GC point |
607 // Build OopMaps for each GC point |
608 void BuildOopMaps(); |
608 void BuildOopMaps(); |
609 // Append debug info for the node to the array |
609 |
610 void FillLocArray( int idx, Node *local, GrowableArray<ScopeValue*> *array ); |
610 // Append debug info for the node "local" at safepoint node "sfpt" to the |
|
611 // "array", May also consult and add to "objs", which describes the |
|
612 // scalar-replaced objects. |
|
613 void FillLocArray( int idx, MachSafePointNode* sfpt, |
|
614 Node *local, GrowableArray<ScopeValue*> *array, |
|
615 GrowableArray<ScopeValue*> *objs ); |
|
616 |
|
617 // If "objs" contains an ObjectValue whose id is "id", returns it, else NULL. |
|
618 static ObjectValue* sv_for_node_id(GrowableArray<ScopeValue*> *objs, int id); |
|
619 // Requres that "objs" does not contains an ObjectValue whose id matches |
|
620 // that of "sv. Appends "sv". |
|
621 static void set_sv_for_object_node(GrowableArray<ScopeValue*> *objs, |
|
622 ObjectValue* sv ); |
611 |
623 |
612 // Process an OopMap Element while emitting nodes |
624 // Process an OopMap Element while emitting nodes |
613 void Process_OopMap_Node(MachNode *mach, int code_offset); |
625 void Process_OopMap_Node(MachNode *mach, int code_offset); |
614 |
626 |
615 // Write out basic block data to code buffer |
627 // Write out basic block data to code buffer |