comparison src/share/vm/opto/connode.hpp @ 643:c771b7f43bbf

6378821: bitCount() should use POPC on SPARC processors and AMD+10h Summary: bitCount() should use POPC on SPARC processors where POPC is implemented directly in hardware. Reviewed-by: kvn, never
author twisti
date Fri, 13 Mar 2009 11:35:17 -0700
parents 9c2ecc2ffb12
children 93c14e5562c4
comparison
equal deleted inserted replaced
642:660978a2a31a 643:c771b7f43bbf
1 /* 1 /*
2 * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. 2 * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
633 virtual int Opcode() const; 633 virtual int Opcode() const;
634 virtual const Type *bottom_type() const { return TypeLong::LONG; } 634 virtual const Type *bottom_type() const { return TypeLong::LONG; }
635 virtual uint ideal_reg() const { return Op_RegL; } 635 virtual uint ideal_reg() const { return Op_RegL; }
636 virtual const Type* Value( PhaseTransform *phase ) const; 636 virtual const Type* Value( PhaseTransform *phase ) const;
637 }; 637 };
638
639 //---------- PopCountINode -----------------------------------------------------
640 // Population count (bit count) of an integer.
641 class PopCountINode : public Node {
642 public:
643 PopCountINode(Node* in1) : Node(0, in1) {}
644 virtual int Opcode() const;
645 const Type* bottom_type() const { return TypeInt::INT; }
646 virtual uint ideal_reg() const { return Op_RegI; }
647 };
648
649 //---------- PopCountLNode -----------------------------------------------------
650 // Population count (bit count) of a long.
651 class PopCountLNode : public Node {
652 public:
653 PopCountLNode(Node* in1) : Node(0, in1) {}
654 virtual int Opcode() const;
655 const Type* bottom_type() const { return TypeInt::INT; }
656 virtual uint ideal_reg() const { return Op_RegI; }
657 };