2169 "not reverse Bytes"); |
2169 "not reverse Bytes"); |
2170 if (id == vmIntrinsics::_reverseBytes_i && !Matcher::has_match_rule(Op_ReverseBytesI)) return false; |
2170 if (id == vmIntrinsics::_reverseBytes_i && !Matcher::has_match_rule(Op_ReverseBytesI)) return false; |
2171 if (id == vmIntrinsics::_reverseBytes_l && !Matcher::has_match_rule(Op_ReverseBytesL)) return false; |
2171 if (id == vmIntrinsics::_reverseBytes_l && !Matcher::has_match_rule(Op_ReverseBytesL)) return false; |
2172 if (id == vmIntrinsics::_reverseBytes_c && !Matcher::has_match_rule(Op_ReverseBytesUS)) return false; |
2172 if (id == vmIntrinsics::_reverseBytes_c && !Matcher::has_match_rule(Op_ReverseBytesUS)) return false; |
2173 if (id == vmIntrinsics::_reverseBytes_s && !Matcher::has_match_rule(Op_ReverseBytesS)) return false; |
2173 if (id == vmIntrinsics::_reverseBytes_s && !Matcher::has_match_rule(Op_ReverseBytesS)) return false; |
2174 _sp += arg_size(); // restore stack pointer |
2174 _sp += arg_size(); // restore stack pointer |
2175 switch (id) { |
2175 switch (id) { |
2176 case vmIntrinsics::_reverseBytes_i: |
2176 case vmIntrinsics::_reverseBytes_i: |
2177 push(_gvn.transform(new (C, 2) ReverseBytesINode(0, pop()))); |
2177 push(_gvn.transform(new (C, 2) ReverseBytesINode(0, pop()))); |
2178 break; |
2178 break; |
2179 case vmIntrinsics::_reverseBytes_l: |
2179 case vmIntrinsics::_reverseBytes_l: |
2342 |
2342 |
2343 int type_words = type2size[ (type == T_ADDRESS) ? T_LONG : type ]; |
2343 int type_words = type2size[ (type == T_ADDRESS) ? T_LONG : type ]; |
2344 |
2344 |
2345 // Argument words: "this" plus (oop/offset) or (lo/hi) args plus maybe 1 or 2 value words |
2345 // Argument words: "this" plus (oop/offset) or (lo/hi) args plus maybe 1 or 2 value words |
2346 int nargs = 1 + (is_native_ptr ? 2 : 3) + (is_store ? type_words : 0); |
2346 int nargs = 1 + (is_native_ptr ? 2 : 3) + (is_store ? type_words : 0); |
|
2347 assert(callee()->arg_size() == nargs, "must be"); |
2347 |
2348 |
2348 debug_only(int saved_sp = _sp); |
2349 debug_only(int saved_sp = _sp); |
2349 _sp += nargs; |
2350 _sp += nargs; |
2350 |
2351 |
2351 Node* val; |
2352 Node* val; |