src/share/vm/oops/generateOopMap.cpp

changeset 1934
e9ff18c4ace7
parent 1907
c18cbe5936b8
parent 1920
ab102d5d923e
child 2036
126ea7725993
     1.1 --- a/src/share/vm/oops/generateOopMap.cpp	Tue Jun 01 11:48:33 2010 -0700
     1.2 +++ b/src/share/vm/oops/generateOopMap.cpp	Wed Jun 02 22:45:42 2010 -0700
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 1997, 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 @@ -1254,7 +1254,7 @@
    1.11        case Bytecodes::_invokestatic:
    1.12        case Bytecodes::_invokedynamic:
    1.13        case Bytecodes::_invokeinterface:
    1.14 -        int idx = currentBC->get_index_int();
    1.15 +        int idx = currentBC->has_index_u4() ? currentBC->get_index_u4() : currentBC->get_index_u2();
    1.16          constantPoolOop cp    = method()->constants();
    1.17          int nameAndTypeIdx    = cp->name_and_type_ref_index_at(idx);
    1.18          int signatureIdx      = cp->signature_ref_index_at(nameAndTypeIdx);
    1.19 @@ -1286,7 +1286,7 @@
    1.20        case Bytecodes::_invokestatic:
    1.21        case Bytecodes::_invokedynamic:
    1.22        case Bytecodes::_invokeinterface:
    1.23 -        int idx = currentBC->get_index_int();
    1.24 +        int idx = currentBC->has_index_u4() ? currentBC->get_index_u4() : currentBC->get_index_u2();
    1.25          constantPoolOop cp    = method()->constants();
    1.26          int nameAndTypeIdx    = cp->name_and_type_ref_index_at(idx);
    1.27          int signatureIdx      = cp->signature_ref_index_at(nameAndTypeIdx);
    1.28 @@ -1356,8 +1356,8 @@
    1.29  
    1.30      case Bytecodes::_ldc2_w:            ppush(vvCTS);               break;
    1.31  
    1.32 -    case Bytecodes::_ldc:               do_ldc(itr->get_index(), itr->bci());    break;
    1.33 -    case Bytecodes::_ldc_w:             do_ldc(itr->get_index_big(), itr->bci());break;
    1.34 +    case Bytecodes::_ldc:               do_ldc(itr->get_index(),    itr->bci()); break;
    1.35 +    case Bytecodes::_ldc_w:             do_ldc(itr->get_index_u2(), itr->bci()); break;
    1.36  
    1.37      case Bytecodes::_iload:
    1.38      case Bytecodes::_fload:             ppload(vCTS, itr->get_index()); break;
    1.39 @@ -1550,17 +1550,17 @@
    1.40      case Bytecodes::_jsr_w:             do_jsr(itr->dest_w());       break;
    1.41  
    1.42      case Bytecodes::_getstatic:         do_field(true,  true,
    1.43 -                                                 itr->get_index_big(),
    1.44 +                                                 itr->get_index_u2_cpcache(),
    1.45                                                   itr->bci()); break;
    1.46 -    case Bytecodes::_putstatic:         do_field(false, true,  itr->get_index_big(), itr->bci()); break;
    1.47 -    case Bytecodes::_getfield:          do_field(true,  false, itr->get_index_big(), itr->bci()); break;
    1.48 -    case Bytecodes::_putfield:          do_field(false, false, itr->get_index_big(), itr->bci()); break;
    1.49 +    case Bytecodes::_putstatic:         do_field(false, true,  itr->get_index_u2_cpcache(), itr->bci()); break;
    1.50 +    case Bytecodes::_getfield:          do_field(true,  false, itr->get_index_u2_cpcache(), itr->bci()); break;
    1.51 +    case Bytecodes::_putfield:          do_field(false, false, itr->get_index_u2_cpcache(), itr->bci()); break;
    1.52  
    1.53      case Bytecodes::_invokevirtual:
    1.54 -    case Bytecodes::_invokespecial:     do_method(false, false, itr->get_index_big(), itr->bci()); break;
    1.55 -    case Bytecodes::_invokestatic:      do_method(true,  false, itr->get_index_big(), itr->bci()); break;
    1.56 -    case Bytecodes::_invokedynamic:     do_method(true,  false, itr->get_index_int(), itr->bci()); break;
    1.57 -    case Bytecodes::_invokeinterface:   do_method(false, true,  itr->get_index_big(), itr->bci()); break;
    1.58 +    case Bytecodes::_invokespecial:     do_method(false, false, itr->get_index_u2_cpcache(), itr->bci()); break;
    1.59 +    case Bytecodes::_invokestatic:      do_method(true,  false, itr->get_index_u2_cpcache(), itr->bci()); break;
    1.60 +    case Bytecodes::_invokedynamic:     do_method(true,  false, itr->get_index_u4(),         itr->bci()); break;
    1.61 +    case Bytecodes::_invokeinterface:   do_method(false, true,  itr->get_index_u2_cpcache(), itr->bci()); break;
    1.62      case Bytecodes::_newarray:
    1.63      case Bytecodes::_anewarray:         pp_new_ref(vCTS, itr->bci()); break;
    1.64      case Bytecodes::_checkcast:         do_checkcast(); break;

mercurial