7200233: C2: can't use expand rules for vector instruction rules

Added missed _bottom_type set in ArchDesc::defineExpand() and missed vector nodes in MatchRule::is_vector().

Reviewed-by: twisti, roland, dlong
This commit is contained in:
Vladimir Kozlov 2012-09-25 10:41:15 -07:00
parent ac3b6a6442
commit 9c3545d4fb
3 changed files with 36 additions and 11 deletions

View file

@ -1905,6 +1905,8 @@ typedef TwoOopHashtable<Symbol*, mtClass> SymbolTwoOopHashtable;
declare_c2_type(SubVLNode, VectorNode) \
declare_c2_type(SubVFNode, VectorNode) \
declare_c2_type(SubVDNode, VectorNode) \
declare_c2_type(MulVSNode, VectorNode) \
declare_c2_type(MulVINode, VectorNode) \
declare_c2_type(MulVFNode, VectorNode) \
declare_c2_type(MulVDNode, VectorNode) \
declare_c2_type(DivVFNode, VectorNode) \
@ -1912,9 +1914,15 @@ typedef TwoOopHashtable<Symbol*, mtClass> SymbolTwoOopHashtable;
declare_c2_type(LShiftVBNode, VectorNode) \
declare_c2_type(LShiftVSNode, VectorNode) \
declare_c2_type(LShiftVINode, VectorNode) \
declare_c2_type(LShiftVLNode, VectorNode) \
declare_c2_type(RShiftVBNode, VectorNode) \
declare_c2_type(RShiftVSNode, VectorNode) \
declare_c2_type(RShiftVINode, VectorNode) \
declare_c2_type(RShiftVLNode, VectorNode) \
declare_c2_type(URShiftVBNode, VectorNode) \
declare_c2_type(URShiftVSNode, VectorNode) \
declare_c2_type(URShiftVINode, VectorNode) \
declare_c2_type(URShiftVLNode, VectorNode) \
declare_c2_type(AndVNode, VectorNode) \
declare_c2_type(OrVNode, VectorNode) \
declare_c2_type(XorVNode, VectorNode) \
@ -1937,6 +1945,8 @@ typedef TwoOopHashtable<Symbol*, mtClass> SymbolTwoOopHashtable;
declare_c2_type(Pack2DNode, PackNode) \
declare_c2_type(ExtractNode, Node) \
declare_c2_type(ExtractBNode, ExtractNode) \
declare_c2_type(ExtractUBNode, ExtractNode) \
declare_c2_type(ExtractCNode, ExtractNode) \
declare_c2_type(ExtractSNode, ExtractNode) \
declare_c2_type(ExtractINode, ExtractNode) \
declare_c2_type(ExtractLNode, ExtractNode) \