62
62
import com .ibm .j9ddr .vm29 .pointer .generated .J9SFNativeMethodFramePointer ;
63
63
import com .ibm .j9ddr .vm29 .pointer .generated .J9SFSpecialFramePointer ;
64
64
import com .ibm .j9ddr .vm29 .pointer .generated .J9UTF8Pointer ;
65
- import com .ibm .j9ddr .vm29 .pointer .generated .J9VMThreadPointer ;
66
65
import com .ibm .j9ddr .vm29 .pointer .helper .J9UTF8Helper ;
67
66
import com .ibm .j9ddr .vm29 .structure .J9ITable ;
68
67
import com .ibm .j9ddr .vm29 .structure .J9JITFrame ;
@@ -106,9 +105,9 @@ static void jitPrintRegisterMapArray(WalkState walkState, String description) th
106
105
getImpl ().jitPrintRegisterMapArray (walkState ,description );
107
106
}
108
107
109
- static J9JITExceptionTablePointer jitGetExceptionTableFromPC (J9VMThreadPointer walkThread , U8Pointer pc ) throws CorruptDataException
108
+ static J9JITExceptionTablePointer jitGetExceptionTableFromPC (J9JavaVMPointer javaVM , U8Pointer pc ) throws CorruptDataException
110
109
{
111
- return getImpl ().jitGetExceptionTableFromPC (walkThread , pc );
110
+ return getImpl ().jitGetExceptionTableFromPC (javaVM , pc );
112
111
}
113
112
114
113
private static IJITStackWalker impl ;
@@ -137,7 +136,7 @@ private static interface IJITStackWalker extends IAlgorithm
137
136
138
137
public void jitPrintRegisterMapArray (WalkState walkState , String description ) throws CorruptDataException ;
139
138
140
- public J9JITExceptionTablePointer jitGetExceptionTableFromPC (J9VMThreadPointer walkThread , U8Pointer pc ) throws CorruptDataException ;
139
+ public J9JITExceptionTablePointer jitGetExceptionTableFromPC (J9JavaVMPointer javaVM , U8Pointer pc ) throws CorruptDataException ;
141
140
}
142
141
143
142
/**
@@ -214,7 +213,7 @@ public FrameCallbackResult jitWalkStackFrames(WalkState walkState)
214
213
walkState .outgoingArgCount = walkState .argCount ;
215
214
216
215
if (((walkState .flags & J9_STACKWALK_SKIP_INLINES ) == 0 ) && getJitInlinedCallInfo (walkState .jitInfo ).notNull ()) {
217
- jitGetMapsFromPC (walkState .walkThread . javaVM () , walkState .jitInfo , UDATA .cast (walkState .pc ), maps );
216
+ jitGetMapsFromPC (walkState .javaVM , walkState .jitInfo , UDATA .cast (walkState .pc ), maps );
218
217
if (maps .inlineMap .notNull ()) {
219
218
VoidPointer inlinedCallSite = getFirstInlinedCallSite (walkState .jitInfo , VoidPointer .cast (maps .inlineMap ));
220
219
walkState .arg0EA = UDATAPointer .NULL ;
@@ -238,7 +237,7 @@ public FrameCallbackResult jitWalkStackFrames(WalkState walkState)
238
237
}
239
238
}
240
239
} else if ((walkState .flags & J9_STACKWALK_RECORD_BYTECODE_PC_OFFSET ) != 0 ) {
241
- jitGetMapsFromPC (walkState .walkThread . javaVM () , walkState .jitInfo , UDATA .cast (walkState .pc ),maps );
240
+ jitGetMapsFromPC (walkState .javaVM , walkState .jitInfo , UDATA .cast (walkState .pc ), maps );
242
241
}
243
242
244
243
SET_A0_CP_METHOD (walkState );
@@ -278,7 +277,7 @@ public FrameCallbackResult jitWalkStackFrames(WalkState walkState)
278
277
279
278
/* JIT pair with no mapping indicates a bytecoded frame */
280
279
failedPC = walkState .pc ;
281
- returnTable = PointerPointer .cast (walkState .walkThread . javaVM () .jitConfig ().i2jReturnTable ());
280
+ returnTable = PointerPointer .cast (walkState .javaVM .jitConfig ().i2jReturnTable ());
282
281
if (returnTable .notNull ()) {
283
282
for (i = 0 ; i < J9SW_JIT_RETURN_TABLE_SIZE ; ++i ) {
284
283
if (failedPC .eq (U8Pointer .cast (returnTable .at (i )))) break ;
@@ -309,11 +308,11 @@ private J9JITExceptionTablePointer jitGetExceptionTable(
309
308
{
310
309
/* this is done with a macro in C */
311
310
if (! J9BuildFlags .jit_fullSpeedDebug ) {
312
- return jitGetExceptionTableFromPC (walkState .walkThread , walkState .pc );
311
+ return jitGetExceptionTableFromPC (walkState .javaVM , walkState .pc );
313
312
}
314
313
315
314
J9JITDecompilationInfoPointer stack ;
316
- J9JITExceptionTablePointer result = jitGetExceptionTableFromPC (walkState .walkThread , walkState .pc );
315
+ J9JITExceptionTablePointer result = jitGetExceptionTableFromPC (walkState .javaVM , walkState .pc );
317
316
318
317
walkState .decompilationRecord = J9JITDecompilationInfoPointer .NULL ;
319
318
if (result .notNull ()) return result ;
@@ -333,7 +332,7 @@ private J9JITExceptionTablePointer jitGetExceptionTable(
333
332
}
334
333
walkState .decompilationRecord = walkState .decompilationStack ;
335
334
walkState .decompilationStack = walkState .decompilationStack .next ();
336
- return jitGetExceptionTableFromPC (walkState .walkThread , walkState .pc );
335
+ return jitGetExceptionTableFromPC (walkState .javaVM , walkState .pc );
337
336
}
338
337
339
338
stack = walkState .decompilationStack ;
@@ -348,9 +347,9 @@ private J9JITExceptionTablePointer jitGetExceptionTable(
348
347
}
349
348
350
349
public J9JITExceptionTablePointer jitGetExceptionTableFromPC (
351
- J9VMThreadPointer walkThread , U8Pointer pc ) throws CorruptDataException
350
+ J9JavaVMPointer javaVM , U8Pointer pc ) throws CorruptDataException
352
351
{
353
- J9JITConfigPointer jitConfig = walkThread . javaVM () .jitConfig ();
352
+ J9JITConfigPointer jitConfig = javaVM .jitConfig ();
354
353
355
354
if (jitConfig .isNull ()) {
356
355
return J9JITExceptionTablePointer .NULL ;
@@ -419,7 +418,7 @@ private void jitWalkResolveMethodFrame(WalkState walkState) throws CorruptDataEx
419
418
ramMethod = J9MethodPointer .cast (iTableOffset ).untag (J9_ITABLE_OFFSET_TAG_BITS );
420
419
} else if (0 != (iTableOffset & J9_ITABLE_OFFSET_VIRTUAL )) {
421
420
long vTableOffset = iTableOffset & ~J9_ITABLE_OFFSET_TAG_BITS ;
422
- J9JavaVMPointer vm = walkState .walkThread . javaVM () ;
421
+ J9JavaVMPointer vm = walkState .javaVM ;
423
422
// C code uses Object from the VM constant pool, but that's not easily
424
423
// accessible to DDR. Any class will do.
425
424
J9ClassPointer clazz = vm .booleanArrayClass ();
@@ -646,7 +645,7 @@ private char jitNextSigChar(String signatureString) throws CorruptDataException
646
645
647
646
private U64Pointer jitFPRParmAddress (WalkState walkState , UDATA fpParmNumber ) throws CorruptDataException
648
647
{
649
- U64Pointer base = U64Pointer .cast (walkState .walkedEntryLocalStorage . jitFPRegisterStorageBase () );
648
+ U64Pointer base = U64Pointer .cast (walkState .jitFPRegisterStorageBase );
650
649
651
650
if (J9BuildFlags .arch_s390 ) {
652
651
/* 390 uses FPR0/2/4/6 for arguments, so double fpParmNumber to get the right register */
@@ -664,7 +663,7 @@ private U64Pointer jitFPRParmAddress(WalkState walkState, UDATA fpParmNumber) th
664
663
* save slots for JIT FPRs, so if vector registers are enabled, the save location for a
665
664
* JIT FPR is (base + (16 * 64) + (128 * FPRNumber)), or (base + (64 * (16 + (2 * FPRNumber)))).
666
665
*/
667
- if (0 != (walkState .walkThread . javaVM () .extendedRuntimeFlags ().longValue () & J9_EXTENDED_RUNTIME_USE_VECTOR_REGISTERS )) {
666
+ if (0 != (walkState .javaVM .extendedRuntimeFlags ().longValue () & J9_EXTENDED_RUNTIME_USE_VECTOR_REGISTERS )) {
668
667
fpParmNumber = fpParmNumber .add (fpParmNumber ).add (16 );
669
668
}
670
669
}
@@ -983,7 +982,7 @@ private FrameCallbackResult walkTransitionFrame(WalkState walkState) throws Corr
983
982
private void jitAddSpilledRegistersForResolve (WalkState walkState ) throws CorruptDataException
984
983
{
985
984
try {
986
- UDATAPointer slotCursor = walkState .walkedEntryLocalStorage . jitGlobalStorageBase () ;
985
+ UDATAPointer slotCursor = walkState .jitGlobalStorageBase ;
987
986
int mapCursor = 0 ;
988
987
int i ;
989
988
@@ -1000,7 +999,7 @@ private void jitAddSpilledRegistersForResolve(WalkState walkState) throws Corrup
1000
999
1001
1000
private void jitAddSpilledRegistersForINL (WalkState walkState ) throws CorruptDataException
1002
1001
{
1003
- UDATAPointer slotCursor = walkState .walkedEntryLocalStorage . jitGlobalStorageBase () ;
1002
+ UDATAPointer slotCursor = walkState .jitGlobalStorageBase ;
1004
1003
int i ;
1005
1004
1006
1005
for (i = 0 ; i < J9SW_JIT_CALLEE_PRESERVED_SIZE ; ++i ) {
@@ -1079,7 +1078,7 @@ private void jitWalkFrame(WalkState walkState, boolean walkLocals, VoidPointer s
1079
1078
WALK_METHOD_CLASS (walkState );
1080
1079
1081
1080
if (stackMap .isNull ()) {
1082
- stackMap = getStackMapFromJitPC (walkState .walkThread . javaVM () , walkState .jitInfo , UDATA .cast (walkState .pc ));
1081
+ stackMap = getStackMapFromJitPC (walkState .javaVM , walkState .jitInfo , UDATA .cast (walkState .pc ));
1083
1082
if (stackMap .isNull ()) {
1084
1083
throw new AddressedCorruptDataException (walkState .jitInfo .getAddress (),"Unable to locate JIT stack map" );
1085
1084
}
@@ -1095,7 +1094,7 @@ private void jitWalkFrame(WalkState walkState, boolean walkLocals, VoidPointer s
1095
1094
mapBytesRemaining = new UDATA (getJitNumberOfMapBytes (gcStackAtlas ));
1096
1095
1097
1096
jitDescriptionCursor = getJitStackSlots (walkState .jitInfo , stackMap );
1098
- stackAllocMapCursor = U8Pointer .cast (getStackAllocMapFromJitPC (walkState .walkThread . javaVM () , walkState .jitInfo , UDATA .cast (walkState .pc ), stackMap ));
1097
+ stackAllocMapCursor = U8Pointer .cast (getStackAllocMapFromJitPC (walkState .javaVM , walkState .jitInfo , UDATA .cast (walkState .pc ), stackMap ));
1099
1098
stackAllocMapBits = new U8 (0 );
1100
1099
1101
1100
walkState .slotType = (int )J9_STACKWALK_SLOT_TYPE_METHOD_LOCAL ;
@@ -1217,7 +1216,7 @@ stack frame (once for parms and once for autos).
1217
1216
swPrintf (walkState , 4 , "\t \t \t F-Slot[{0}] = {1}" , slot .getHexAddress (), slot .at (0 ).getHexAddress ());
1218
1217
1219
1218
if (walkState .callBacks != null ) {
1220
- walkState .callBacks .fieldSlotWalkFunction (walkState . walkThread , walkState , slot , VoidPointer .cast (slot ));
1219
+ walkState .callBacks .fieldSlotWalkFunction (walkState , slot , VoidPointer .cast (slot ));
1221
1220
}
1222
1221
1223
1222
}
@@ -1278,7 +1277,7 @@ private void jitWalkRegisterMap(WalkState walkState, VoidPointer stackMap, J9JIT
1278
1277
swPrintf (walkState , 4 , "\t \t JIT-RegisterMap-O-Slot[{0}] = {1} ({2})" ,
1279
1278
targetObject .getHexAddress (),
1280
1279
oldObject .getHexAddress (), jitRegisterNames [mapCursor ]);
1281
- walkState .callBacks .objectSlotWalkFunction (walkState . walkThread , walkState , targetObject , VoidPointer .cast (targetObject ));
1280
+ walkState .callBacks .objectSlotWalkFunction (walkState , targetObject , VoidPointer .cast (targetObject ));
1282
1281
1283
1282
newObject = targetObject .isNull () ? J9ObjectPointer .NULL : J9ObjectPointer .cast (targetObject .at (0 ));
1284
1283
0 commit comments