src/share/vm/opto/memnode.hpp

changeset 1059
337400e7a5dd
parent 1040
98cb887364d3
child 1063
7bb995fbd3c0
     1.1 --- a/src/share/vm/opto/memnode.hpp	Fri Mar 06 21:36:50 2009 -0800
     1.2 +++ b/src/share/vm/opto/memnode.hpp	Mon Mar 09 03:17:11 2009 -0700
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
     1.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -207,6 +207,19 @@
    1.11    virtual BasicType memory_type() const { return T_BYTE; }
    1.12  };
    1.13  
    1.14 +//------------------------------LoadUBNode-------------------------------------
    1.15 +// Load a unsigned byte (8bits unsigned) from memory
    1.16 +class LoadUBNode : public LoadNode {
    1.17 +public:
    1.18 +  LoadUBNode(Node* c, Node* mem, Node* adr, const TypePtr* at, const TypeInt* ti = TypeInt::UBYTE )
    1.19 +    : LoadNode(c, mem, adr, at, ti) {}
    1.20 +  virtual int Opcode() const;
    1.21 +  virtual uint ideal_reg() const { return Op_RegI; }
    1.22 +  virtual Node* Ideal(PhaseGVN *phase, bool can_reshape);
    1.23 +  virtual int store_Opcode() const { return Op_StoreB; }
    1.24 +  virtual BasicType memory_type() const { return T_BYTE; }
    1.25 +};
    1.26 +
    1.27  //------------------------------LoadUSNode-------------------------------------
    1.28  // Load an unsigned short/char (16bits unsigned) from memory
    1.29  class LoadUSNode : public LoadNode {
    1.30 @@ -232,6 +245,18 @@
    1.31    virtual BasicType memory_type() const { return T_INT; }
    1.32  };
    1.33  
    1.34 +//------------------------------LoadUI2LNode-----------------------------------
    1.35 +// Load an unsigned integer into long from memory
    1.36 +class LoadUI2LNode : public LoadNode {
    1.37 +public:
    1.38 +  LoadUI2LNode(Node* c, Node* mem, Node* adr, const TypePtr* at, const TypeLong* t = TypeLong::UINT)
    1.39 +    : LoadNode(c, mem, adr, at, t) {}
    1.40 +  virtual int Opcode() const;
    1.41 +  virtual uint ideal_reg() const { return Op_RegL; }
    1.42 +  virtual int store_Opcode() const { return Op_StoreL; }
    1.43 +  virtual BasicType memory_type() const { return T_LONG; }
    1.44 +};
    1.45 +
    1.46  //------------------------------LoadRangeNode----------------------------------
    1.47  // Load an array length from the array
    1.48  class LoadRangeNode : public LoadINode {

mercurial