src/share/vm/adlc/output_h.cpp
Print this page
rev 5728 : 8029015: PPC64 (part 216): opto: trap based null and range checks
@@ -1613,19 +1613,23 @@
// Each instruction attribute results in a virtual call of same name.
// The ins_cost is not handled here.
Attribute *attr = instr->_attribs;
bool avoid_back_to_back = false;
while (attr != NULL) {
- if (strcmp (attr->_ident,"ins_cost") &&
- strncmp(attr->_ident,"ins_field_", 10) != 0 &&
- strcmp (attr->_ident,"ins_short_branch")) {
- fprintf(fp," virtual int %s() const { return %s; }\n",
- attr->_ident, attr->_val);
+ if (strcmp (attr->_ident, "ins_cost") != 0 &&
+ strncmp(attr->_ident, "ins_field_", 10) != 0 &&
+ // Must match function in node.hpp: return type bool, no prefix "ins_".
+ strcmp (attr->_ident, "ins_is_TrapBasedCheckNode") != 0 &&
+ strcmp (attr->_ident, "ins_short_branch") != 0) {
+ fprintf(fp, " virtual int %s() const { return %s; }\n", attr->_ident, attr->_val);
}
// Check value for ins_avoid_back_to_back, and if it is true (1), set the flag
- if (!strcmp(attr->_ident,"ins_avoid_back_to_back") && attr->int_val(*this) != 0)
+ if (!strcmp(attr->_ident, "ins_avoid_back_to_back") != 0 && attr->int_val(*this) != 0)
avoid_back_to_back = true;
+ if (strcmp (attr->_ident, "ins_is_TrapBasedCheckNode") == 0)
+ fprintf(fp, " virtual bool is_TrapBasedCheckNode() const { return %s; }\n", attr->_val);
+
attr = (Attribute *)attr->_next;
}
// virtual functions for encode and format