Mercurial > hg > truffle
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 }; |