7150046: SIGILL on sparcv9 fastdebug

Mon, 05 Mar 2012 14:19:00 -0500

author
coleenp
date
Mon, 05 Mar 2012 14:19:00 -0500
changeset 3627
8a48c2906f91
parent 3626
ff29ce866f23
child 3628
d59a6302465a

7150046: SIGILL on sparcv9 fastdebug
Summary: Breakpoint needs to do 64-bit compare for pointers on sparcv9
Reviewed-by: coleenp, never
Contributed-by: dean.long@oracle.com

src/cpu/sparc/vm/assembler_sparc.hpp file | annotate | diff | comparison | revisions
src/cpu/sparc/vm/cppInterpreter_sparc.cpp file | annotate | diff | comparison | revisions
src/cpu/sparc/vm/sharedRuntime_sparc.cpp file | annotate | diff | comparison | revisions
src/cpu/sparc/vm/templateInterpreter_sparc.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/cpu/sparc/vm/assembler_sparc.hpp	Thu Mar 01 12:41:13 2012 +0400
     1.2 +++ b/src/cpu/sparc/vm/assembler_sparc.hpp	Mon Mar 05 14:19:00 2012 -0500
     1.3 @@ -2221,7 +2221,7 @@
     1.4    // traps as per trap.h (SPARC ABI?)
     1.5  
     1.6    void breakpoint_trap();
     1.7 -  void breakpoint_trap(Condition c, CC cc = icc);
     1.8 +  void breakpoint_trap(Condition c, CC cc);
     1.9    void flush_windows_trap();
    1.10    void clean_windows_trap();
    1.11    void get_psr_trap();
     2.1 --- a/src/cpu/sparc/vm/cppInterpreter_sparc.cpp	Thu Mar 01 12:41:13 2012 +0400
     2.2 +++ b/src/cpu/sparc/vm/cppInterpreter_sparc.cpp	Mon Mar 05 14:19:00 2012 -0500
     2.3 @@ -1187,7 +1187,7 @@
     2.4  
     2.5    #ifdef ASSERT
     2.6      __ tst(O1);
     2.7 -    __ breakpoint_trap(Assembler::zero);
     2.8 +    __ breakpoint_trap(Assembler::zero, Assembler::ptr_cc);
     2.9    #endif // ASSERT
    2.10  
    2.11      const int entry_size            = frame::interpreter_frame_monitor_size() * wordSize;
     3.1 --- a/src/cpu/sparc/vm/sharedRuntime_sparc.cpp	Thu Mar 01 12:41:13 2012 +0400
     3.2 +++ b/src/cpu/sparc/vm/sharedRuntime_sparc.cpp	Mon Mar 05 14:19:00 2012 -0500
     3.3 @@ -3325,7 +3325,7 @@
     3.4    // make sure that the frames are aligned properly
     3.5  #ifndef _LP64
     3.6    __ btst(wordSize*2-1, SP);
     3.7 -  __ breakpoint_trap(Assembler::notZero);
     3.8 +  __ breakpoint_trap(Assembler::notZero, Assembler::ptr_cc);
     3.9  #endif
    3.10    #endif
    3.11  
    3.12 @@ -3407,7 +3407,7 @@
    3.13  #ifdef ASSERT
    3.14    // make sure that there is at least one entry in the array
    3.15    __ tst(O4array_size);
    3.16 -  __ breakpoint_trap(Assembler::zero);
    3.17 +  __ breakpoint_trap(Assembler::zero, Assembler::icc);
    3.18  #endif
    3.19  
    3.20    // Now push the new interpreter frames
     4.1 --- a/src/cpu/sparc/vm/templateInterpreter_sparc.cpp	Thu Mar 01 12:41:13 2012 +0400
     4.2 +++ b/src/cpu/sparc/vm/templateInterpreter_sparc.cpp	Mon Mar 05 14:19:00 2012 -0500
     4.3 @@ -379,7 +379,7 @@
     4.4  
     4.5  #ifdef ASSERT
     4.6      __ tst(O0);
     4.7 -    __ breakpoint_trap(Assembler::zero);
     4.8 +    __ breakpoint_trap(Assembler::zero, Assembler::ptr_cc);
     4.9  #endif // ASSERT
    4.10  
    4.11      __ bind(done);
    4.12 @@ -2050,7 +2050,7 @@
    4.13    AddressLiteral stop_at(&StopInterpreterAt);
    4.14    __ load_ptr_contents(stop_at, G4_scratch);
    4.15    __ cmp(G3_scratch, G4_scratch);
    4.16 -  __ breakpoint_trap(Assembler::equal);
    4.17 +  __ breakpoint_trap(Assembler::equal, Assembler::icc);
    4.18  }
    4.19  #endif // not PRODUCT
    4.20  #endif // !CC_INTERP

mercurial