Mercurial > hg > graal-compiler
comparison agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java @ 2011:dad31fc330cd
7001379: bootstrap method data needs to be moved from constant pool to a classfile attribute
Reviewed-by: twisti
author | jrose |
---|---|
date | Fri, 03 Dec 2010 15:53:57 -0800 |
parents | f42a2f0c16bb |
children | 3582bf76420e |
comparison
equal
deleted
inserted
replaced
2010:7601ab0e1e33 | 2011:dad31fc330cd |
---|---|
319 dos.writeShort(refIndex); | 319 dos.writeShort(refIndex); |
320 if (DEBUG) debugMessage("CP[" + ci + "] = MT index = " + refIndex); | 320 if (DEBUG) debugMessage("CP[" + ci + "] = MT index = " + refIndex); |
321 break; | 321 break; |
322 } | 322 } |
323 | 323 |
324 case JVM_CONSTANT_InvokeDynamicTrans: | |
324 case JVM_CONSTANT_InvokeDynamic: { | 325 case JVM_CONSTANT_InvokeDynamic: { |
325 dos.writeByte(cpConstType); | 326 dos.writeByte(cpConstType); |
326 int[] values = cpool.getMultiOperandsAt(ci); | 327 int value = cpool.getIntAt(ci); |
327 for (int vn = 0; vn < values.length; vn++) { | 328 short bsmIndex = (short) extractLowShortFromInt(value); |
328 dos.writeShort(values[vn]); | 329 short nameAndTypeIndex = (short) extractHighShortFromInt(value); |
329 } | 330 dos.writeShort(bsmIndex); |
330 if (DEBUG) debugMessage("CP[" + ci + "] = INDY indexes = " + Arrays.toString(values)); | 331 dos.writeShort(nameAndTypeIndex); |
332 if (DEBUG) debugMessage("CP[" + ci + "] = INDY bsm = " + | |
333 bsmIndex + ", N&T = " + nameAndTypeIndex); | |
331 break; | 334 break; |
332 } | 335 } |
333 | 336 |
334 default: | 337 default: |
335 throw new InternalError("Unknown tag: " + cpConstType); | 338 throw new InternalError("Unknown tag: " + cpConstType); |