RFR (S): 8024922: PPC64 (part 116): Extend adlc to generate fields into nodes.

Lindenmaier, Goetz goetz.lindenmaier at sap.com
Thu Sep 19 08:44:45 PDT 2013


Hi,

We extended adlc by a feature that allows to specify fields of
MachNodes.
http://cr.openjdk.java.net/~goetz/webrevs/8024922-adlcFields/

This is implemented according to the ins_xxx() functionality that
allows to specify functions returning constants.  If you specify
an ins_field_xxx(tp) in an instruct specification, a field _xxx
with type tp is added to the node.

You can see a usage of this feature in the ppc.ad file:
http://hg.openjdk.java.net/ppc-aix-port/jdk8/hotspot/file/e6d09cebf92d/src/cpu/ppc/vm/ppc.ad

E.g., on line 12928 you find the specification of _load_ic_hi_node:
    12928 instruct CallDynamicJavaDirect__2(method meth) %{
    12924   match(CallDynamicJava); // To get all the data fields we need ...
    12925   effect(USE meth);
    12926   predicate(false);       // ... but never match.
    12927
    12928   ins_field_load_ic_hi_node(exLoadConL_hiNode*);

which is used on line 5098:
     5098     {
     5099       CallDynamicJavaDirect__2Node *m1 = (CallDynamicJavaDirect__2Node *)call;
     5100       m1->_load_ic_hi_node = exLoadConLNodes_IC._large_hi;
     5101       m1->_load_ic_node    = exLoadConLNodes_IC._small;
     5102     }

As with other ins_ attributes, a general declaration of the attribute is needed, see
line 6565:
     6565 ins_attrib ins_field_load_ic_hi_node(0);

In adlc, we just had to change the output of nodes. Parsing of the ad file
is not affected.

This change only affects adlc. There should be no effects on the Oracle
platforms, except if a closed platform happens to specify an attribute
with the name prefix ins_field_.

Please review and test this change.

Best regards,
  Goetz.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/ppc-aix-port-dev/attachments/20130919/ab20291b/attachment.html 


More information about the ppc-aix-port-dev mailing list