Assertion failure in OSR State Extractor running chart

Description

See: http://jikesrvm.anu.edu.au/cattrack/results/rvmx86lnx32.anu.edu.au/commit.847/development/default/dacapo/chart

Stackdump is:
– Stack –
at [0x6b2e7d80] Lorg/jikesrvm/VM; _assertionFailure(Ljava/lang/String;Ljava/lang/StringV at line 528
at [0x6b2e7d98] Lorg/jikesrvm/VM; _assert(ZLjava/lang/String;Ljava/lang/StringV at line 511
at [0x6b2e7db4] Lorg/jikesrvm/VM; _assert(Z)V at line 489
at [0x6b2e7e08] Lorg/jikesrvm/osr/ia32/OSR_OptExecStateExtractor; getObjectFrom(II[BLorg/vmmagic/unboxed/Offset;Lorg/jikesrvm/osr/ia32/OSR_TempRegistersLjava/lang/Object; at line 464
at [0x6b2e7ea4] Lorg/jikesrvm/osr/ia32/OSR_OptExecStateExtractor; getExecStateSequence(Lorg/jikesrvm/scheduler/VM_Thread;[BLorg/vmmagic/unboxed/Offset;Lorg/vmmagic/unboxed/Offset;ILorg/vmmagic/unboxed/Offset;Lorg/jikesrvm/osr/ia32/OSR_TempRegisters;Lorg/jikesrvm/osr/OSR_EncodedOSRMapLorg/jikesrvm/osr/OSR_ExecutionState; at line 357
at [0x6b2e7f44] Lorg/jikesrvm/osr/ia32/OSR_OptExecStateExtractor; extractState(Lorg/jikesrvm/scheduler/VM_Thread;Lorg/vmmagic/unboxed/Offset;Lorg/vmmagic/unboxed/Offset;I)Lorg/jikesrvm/osr/OSR_ExecutionState; at line 124
at [0x6b2e7fbc] Lorg/jikesrvm/adaptive/OSR_OnStackReplacementPlan; execute()V at line 115
at [0x6b2e7fd8] Lorg/jikesrvm/adaptive/recompilation/VM_CompilationThread; run()V at line 55
at [0x6b2e8000] Lorg/jikesrvm/scheduler/VM_Thread; startoff()V at line 606

The code in question is below. My guess would be this is happening because of the recent object/address constant improvements.

private static Object getObjectFrom(int vtype, int value, byte[] stack, Offset fpOffset,
OSR_TempRegisters registers) {
if (vtype == ICONST) { //kv:todo : to become ACONST
// the only constant object is NULL, I believe.
if (VM.VerifyAssertions) VM._assert(value == 0);
return VM_Magic.addressAsObject(Address.zero());

} else if (vtype == PHYREG) {
return registers.objs[value];

} else if (vtype == SPILL) {
return VM_Magic.getObjectAtOffset(stack, fpOffset.minus(value));

} else {
VM.sysWrite("fatal error : ( vtype = " + vtype + " )\n");
if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED);
return null;
}
}

Environment

None

Status

Assignee

Unassigned

Reporter

DaveG

Labels

None

External issue ID

None

Components

Fix versions

Priority

Medium
Configure