src/cpu/x86/vm/jniFastGetField_x86_32.cpp

changeset 2103
3e8fbc61cee8
parent 1907
c18cbe5936b8
child 2314
f95d63e2154a
     1.1 --- a/src/cpu/x86/vm/jniFastGetField_x86_32.cpp	Mon Aug 23 09:09:36 2010 -0700
     1.2 +++ b/src/cpu/x86/vm/jniFastGetField_x86_32.cpp	Wed Aug 25 05:27:54 2010 -0700
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. 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 @@ -54,10 +54,10 @@
    1.11      default:        ShouldNotReachHere();
    1.12    }
    1.13    ResourceMark rm;
    1.14 -  BufferBlob* b = BufferBlob::create(name, BUFFER_SIZE*wordSize);
    1.15 -  address fast_entry = b->instructions_begin();
    1.16 -  CodeBuffer cbuf(fast_entry, b->instructions_size());
    1.17 +  BufferBlob* blob = BufferBlob::create(name, BUFFER_SIZE*wordSize);
    1.18 +  CodeBuffer cbuf(blob);
    1.19    MacroAssembler* masm = new MacroAssembler(&cbuf);
    1.20 +  address fast_entry = __ pc();
    1.21  
    1.22    Label slow;
    1.23  
    1.24 @@ -135,11 +135,11 @@
    1.25    return fast_entry;
    1.26  #else
    1.27    switch (type) {
    1.28 -    case T_BOOLEAN: jni_fast_GetBooleanField_fp = (GetBooleanField_t)fast_entry; break;
    1.29 -    case T_BYTE:    jni_fast_GetByteField_fp = (GetByteField_t)fast_entry; break;
    1.30 -    case T_CHAR:    jni_fast_GetCharField_fp = (GetCharField_t)fast_entry; break;
    1.31 -    case T_SHORT:   jni_fast_GetShortField_fp = (GetShortField_t)fast_entry; break;
    1.32 -    case T_INT:     jni_fast_GetIntField_fp = (GetIntField_t)fast_entry;
    1.33 +  case T_BOOLEAN: jni_fast_GetBooleanField_fp = (GetBooleanField_t) fast_entry; break;
    1.34 +  case T_BYTE:    jni_fast_GetByteField_fp    = (GetByteField_t)    fast_entry; break;
    1.35 +  case T_CHAR:    jni_fast_GetCharField_fp    = (GetCharField_t)    fast_entry; break;
    1.36 +  case T_SHORT:   jni_fast_GetShortField_fp   = (GetShortField_t)   fast_entry; break;
    1.37 +  case T_INT:     jni_fast_GetIntField_fp     = (GetIntField_t)     fast_entry; break;
    1.38    }
    1.39    return os::win32::fast_jni_accessor_wrapper(type);
    1.40  #endif
    1.41 @@ -168,10 +168,10 @@
    1.42  address JNI_FastGetField::generate_fast_get_long_field() {
    1.43    const char *name = "jni_fast_GetLongField";
    1.44    ResourceMark rm;
    1.45 -  BufferBlob* b = BufferBlob::create(name, BUFFER_SIZE*wordSize);
    1.46 -  address fast_entry = b->instructions_begin();
    1.47 -  CodeBuffer cbuf(fast_entry, b->instructions_size());
    1.48 +  BufferBlob* blob = BufferBlob::create(name, BUFFER_SIZE*wordSize);
    1.49 +  CodeBuffer cbuf(blob);
    1.50    MacroAssembler* masm = new MacroAssembler(&cbuf);
    1.51 +  address fast_entry = __ pc();
    1.52  
    1.53    Label slow;
    1.54  
    1.55 @@ -246,7 +246,7 @@
    1.56  #ifndef _WINDOWS
    1.57    return fast_entry;
    1.58  #else
    1.59 -  jni_fast_GetLongField_fp = (GetLongField_t)fast_entry;
    1.60 +  jni_fast_GetLongField_fp = (GetLongField_t) fast_entry;
    1.61    return os::win32::fast_jni_accessor_wrapper(T_LONG);
    1.62  #endif
    1.63  }
    1.64 @@ -259,10 +259,10 @@
    1.65      default:       ShouldNotReachHere();
    1.66    }
    1.67    ResourceMark rm;
    1.68 -  BufferBlob* b = BufferBlob::create(name, BUFFER_SIZE*wordSize);
    1.69 -  address fast_entry = b->instructions_begin();
    1.70 -  CodeBuffer cbuf(fast_entry, b->instructions_size());
    1.71 +  BufferBlob* blob = BufferBlob::create(name, BUFFER_SIZE*wordSize);
    1.72 +  CodeBuffer cbuf(blob);
    1.73    MacroAssembler* masm = new MacroAssembler(&cbuf);
    1.74 +  address fast_entry = __ pc();
    1.75  
    1.76    Label slow_with_pop, slow;
    1.77  
    1.78 @@ -348,8 +348,8 @@
    1.79    return fast_entry;
    1.80  #else
    1.81    switch (type) {
    1.82 -    case T_FLOAT:  jni_fast_GetFloatField_fp = (GetFloatField_t)fast_entry; break;
    1.83 -    case T_DOUBLE: jni_fast_GetDoubleField_fp = (GetDoubleField_t)fast_entry;
    1.84 +  case T_FLOAT:  jni_fast_GetFloatField_fp  = (GetFloatField_t)  fast_entry; break;
    1.85 +  case T_DOUBLE: jni_fast_GetDoubleField_fp = (GetDoubleField_t) fast_entry; break;
    1.86    }
    1.87    return os::win32::fast_jni_accessor_wrapper(type);
    1.88  #endif

mercurial