comparison src/share/vm/opto/memnode.hpp @ 7637:b30b3c2a0cf2

6896617: Optimize sun.nio.cs.ISO_8859_1$Encode.encodeArrayLoop() on x86 Summary: Use SSE4.2 and AVX2 instructions for encodeArray intrinsic. Reviewed-by: roland
author kvn
date Tue, 22 Jan 2013 15:34:16 -0800
parents d804e148cff8
children 6931f425c517
comparison
equal deleted inserted replaced
7636:a7114d3d712e 7637:b30b3c2a0cf2
884 public: 884 public:
885 AryEqNode(Node* control, Node* char_array_mem, Node* s1, Node* s2): 885 AryEqNode(Node* control, Node* char_array_mem, Node* s1, Node* s2):
886 StrIntrinsicNode(control, char_array_mem, s1, s2) {}; 886 StrIntrinsicNode(control, char_array_mem, s1, s2) {};
887 virtual int Opcode() const; 887 virtual int Opcode() const;
888 virtual const Type* bottom_type() const { return TypeInt::BOOL; } 888 virtual const Type* bottom_type() const { return TypeInt::BOOL; }
889 };
890
891
892 //------------------------------EncodeISOArray--------------------------------
893 // encode char[] to byte[] in ISO_8859_1
894 class EncodeISOArrayNode: public Node {
895 public:
896 EncodeISOArrayNode(Node *control, Node* arymem, Node* s1, Node* s2, Node* c): Node(control, arymem, s1, s2, c) {};
897 virtual int Opcode() const;
898 virtual bool depends_only_on_test() const { return false; }
899 virtual const Type* bottom_type() const { return TypeInt::INT; }
900 virtual const TypePtr* adr_type() const { return TypePtr::BOTTOM; }
901 virtual uint match_edge(uint idx) const;
902 virtual uint ideal_reg() const { return Op_RegI; }
903 virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
904 virtual const Type *Value(PhaseTransform *phase) const;
889 }; 905 };
890 906
891 //------------------------------MemBar----------------------------------------- 907 //------------------------------MemBar-----------------------------------------
892 // There are different flavors of Memory Barriers to match the Java Memory 908 // There are different flavors of Memory Barriers to match the Java Memory
893 // Model. Monitor-enter and volatile-load act as Aquires: no following ref 909 // Model. Monitor-enter and volatile-load act as Aquires: no following ref