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