src/share/vm/asm/assembler.hpp

changeset 1100
c89f86385056
parent 1057
56aae7be60d4
child 1907
c18cbe5936b8
     1.1 --- a/src/share/vm/asm/assembler.hpp	Thu Mar 19 09:13:24 2009 -0700
     1.2 +++ b/src/share/vm/asm/assembler.hpp	Fri Mar 20 23:19:36 2009 -0700
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright 1997-2006 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 @@ -143,15 +143,15 @@
    1.11  // A union type for code which has to assemble both constant and
    1.12  // non-constant operands, when the distinction cannot be made
    1.13  // statically.
    1.14 -class RegisterConstant VALUE_OBJ_CLASS_SPEC {
    1.15 +class RegisterOrConstant VALUE_OBJ_CLASS_SPEC {
    1.16   private:
    1.17    Register _r;
    1.18    intptr_t _c;
    1.19  
    1.20   public:
    1.21 -  RegisterConstant(): _r(noreg), _c(0) {}
    1.22 -  RegisterConstant(Register r): _r(r), _c(0) {}
    1.23 -  RegisterConstant(intptr_t c): _r(noreg), _c(c) {}
    1.24 +  RegisterOrConstant(): _r(noreg), _c(0) {}
    1.25 +  RegisterOrConstant(Register r): _r(r), _c(0) {}
    1.26 +  RegisterOrConstant(intptr_t c): _r(noreg), _c(c) {}
    1.27  
    1.28    Register as_register() const { assert(is_register(),""); return _r; }
    1.29    intptr_t as_constant() const { assert(is_constant(),""); return _c; }
    1.30 @@ -310,13 +310,13 @@
    1.31    // offsets in code which must be generated before the object class is loaded.
    1.32    // Field offsets are never zero, since an object's header (mark word)
    1.33    // is located at offset zero.
    1.34 -  RegisterConstant delayed_value(int(*value_fn)(), Register tmp, int offset = 0) {
    1.35 -    return delayed_value(delayed_value_addr(value_fn), tmp, offset);
    1.36 +  RegisterOrConstant delayed_value(int(*value_fn)(), Register tmp, int offset = 0) {
    1.37 +    return delayed_value_impl(delayed_value_addr(value_fn), tmp, offset);
    1.38    }
    1.39 -  RegisterConstant delayed_value(address(*value_fn)(), Register tmp, int offset = 0) {
    1.40 -    return delayed_value(delayed_value_addr(value_fn), tmp, offset);
    1.41 +  RegisterOrConstant delayed_value(address(*value_fn)(), Register tmp, int offset = 0) {
    1.42 +    return delayed_value_impl(delayed_value_addr(value_fn), tmp, offset);
    1.43    }
    1.44 -  virtual RegisterConstant delayed_value(intptr_t* delayed_value_addr, Register tmp, int offset) = 0;
    1.45 +  virtual RegisterOrConstant delayed_value_impl(intptr_t* delayed_value_addr, Register tmp, int offset) = 0;
    1.46    // Last overloading is platform-dependent; look in assembler_<arch>.cpp.
    1.47    static intptr_t* delayed_value_addr(int(*constant_fn)());
    1.48    static intptr_t* delayed_value_addr(address(*constant_fn)());

mercurial