src/share/vm/asm/assembler.cpp

changeset 3969
1d7922586cf6
parent 3395
40c2484c09e1
child 4153
b9a9ed0f8eeb
     1.1 --- a/src/share/vm/asm/assembler.cpp	Mon Jul 23 13:04:59 2012 -0700
     1.2 +++ b/src/share/vm/asm/assembler.cpp	Tue Jul 24 10:51:00 2012 -0700
     1.3 @@ -318,6 +318,16 @@
     1.4    }
     1.5  }
     1.6  
     1.7 +RegisterOrConstant AbstractAssembler::delayed_value(int(*value_fn)(), Register tmp, int offset) {
     1.8 +  intptr_t val = (intptr_t) (*value_fn)();
     1.9 +  if (val != 0)  return val + offset;
    1.10 +  return delayed_value_impl(delayed_value_addr(value_fn), tmp, offset);
    1.11 +}
    1.12 +RegisterOrConstant AbstractAssembler::delayed_value(address(*value_fn)(), Register tmp, int offset) {
    1.13 +  intptr_t val = (intptr_t) (*value_fn)();
    1.14 +  if (val != 0)  return val + offset;
    1.15 +  return delayed_value_impl(delayed_value_addr(value_fn), tmp, offset);
    1.16 +}
    1.17  intptr_t* AbstractAssembler::delayed_value_addr(int(*value_fn)()) {
    1.18    DelayedConstant* dcon = DelayedConstant::add(T_INT, (DelayedConstant::value_fn_t) value_fn);
    1.19    return &dcon->value;

mercurial