6858208: jvm crash when specifying TypeProfileWidth=0 on jdk 6.0

Tue, 01 Sep 2009 23:34:08 -0700

author
poonam
date
Tue, 01 Sep 2009 23:34:08 -0700
changeset 1402
6918603297f7
parent 1401
bb287c042e99
child 1404
0804a88ed4f5
child 1408
ad6585fd4087

6858208: jvm crash when specifying TypeProfileWidth=0 on jdk 6.0
Summary: Add an explicit check for TypeProfileWidth == 0 in record_klass_in_profile_helper() functions.
Reviewed-by: never, coleenp

src/cpu/sparc/vm/interp_masm_sparc.cpp file | annotate | diff | comparison | revisions
src/cpu/x86/vm/interp_masm_x86_32.cpp file | annotate | diff | comparison | revisions
src/cpu/x86/vm/interp_masm_x86_64.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/cpu/sparc/vm/interp_masm_sparc.cpp	Sun Aug 30 15:33:14 2009 -0700
     1.2 +++ b/src/cpu/sparc/vm/interp_masm_sparc.cpp	Tue Sep 01 23:34:08 2009 -0700
     1.3 @@ -1696,6 +1696,9 @@
     1.4  void InterpreterMacroAssembler::record_klass_in_profile_helper(
     1.5                                          Register receiver, Register scratch,
     1.6                                          int start_row, Label& done) {
     1.7 +  if (TypeProfileWidth == 0)
     1.8 +    return;
     1.9 +
    1.10    int last_row = VirtualCallData::row_limit() - 1;
    1.11    assert(start_row <= last_row, "must be work left to do");
    1.12    // Test this row for both the receiver and for null.
     2.1 --- a/src/cpu/x86/vm/interp_masm_x86_32.cpp	Sun Aug 30 15:33:14 2009 -0700
     2.2 +++ b/src/cpu/x86/vm/interp_masm_x86_32.cpp	Tue Sep 01 23:34:08 2009 -0700
     2.3 @@ -1262,6 +1262,9 @@
     2.4                                          Register receiver, Register mdp,
     2.5                                          Register reg2,
     2.6                                          int start_row, Label& done) {
     2.7 +  if (TypeProfileWidth == 0)
     2.8 +    return;
     2.9 +
    2.10    int last_row = VirtualCallData::row_limit() - 1;
    2.11    assert(start_row <= last_row, "must be work left to do");
    2.12    // Test this row for both the receiver and for null.
     3.1 --- a/src/cpu/x86/vm/interp_masm_x86_64.cpp	Sun Aug 30 15:33:14 2009 -0700
     3.2 +++ b/src/cpu/x86/vm/interp_masm_x86_64.cpp	Tue Sep 01 23:34:08 2009 -0700
     3.3 @@ -1272,6 +1272,9 @@
     3.4                                          Register receiver, Register mdp,
     3.5                                          Register reg2,
     3.6                                          int start_row, Label& done) {
     3.7 +  if (TypeProfileWidth == 0)
     3.8 +    return;
     3.9 +
    3.10    int last_row = VirtualCallData::row_limit() - 1;
    3.11    assert(start_row <= last_row, "must be work left to do");
    3.12    // Test this row for both the receiver and for null.

mercurial