comparison src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp @ 18041:52b4284cb496

Merge with jdk8u20-b26
author Gilles Duboscq <duboscq@ssw.jku.at>
date Wed, 15 Oct 2014 16:02:50 +0200
parents 89152779163c 7f77d17d0f13
children 7848fc12602b
comparison
equal deleted inserted replaced
17606:45d7b2c7029d 18041:52b4284cb496
300 300
301 void os::print_register_info(outputStream *st, void *context) { 301 void os::print_register_info(outputStream *st, void *context) {
302 if (context == NULL) return; 302 if (context == NULL) return;
303 303
304 ucontext_t *uc = (ucontext_t*)context; 304 ucontext_t *uc = (ucontext_t*)context;
305 sigcontext* sc = (sigcontext*)context;
305 intptr_t *sp = (intptr_t *)os::Linux::ucontext_get_sp(uc); 306 intptr_t *sp = (intptr_t *)os::Linux::ucontext_get_sp(uc);
306 307
307 st->print_cr("Register to memory mapping:"); 308 st->print_cr("Register to memory mapping:");
308 st->cr(); 309 st->cr();
309 310
310 // this is only for the "general purpose" registers 311 // this is only for the "general purpose" registers
311 st->print("G1="); print_location(st, SIG_REGS(sc).u_regs[CON__G1]); 312 st->print("G1="); print_location(st, SIG_REGS(sc).u_regs[CON_G1]);
312 st->print("G2="); print_location(st, SIG_REGS(sc).u_regs[CON__G2]); 313 st->print("G2="); print_location(st, SIG_REGS(sc).u_regs[CON_G2]);
313 st->print("G3="); print_location(st, SIG_REGS(sc).u_regs[CON__G3]); 314 st->print("G3="); print_location(st, SIG_REGS(sc).u_regs[CON_G3]);
314 st->print("G4="); print_location(st, SIG_REGS(sc).u_regs[CON__G4]); 315 st->print("G4="); print_location(st, SIG_REGS(sc).u_regs[CON_G4]);
315 st->print("G5="); print_location(st, SIG_REGS(sc).u_regs[CON__G5]); 316 st->print("G5="); print_location(st, SIG_REGS(sc).u_regs[CON_G5]);
316 st->print("G6="); print_location(st, SIG_REGS(sc).u_regs[CON__G6]); 317 st->print("G6="); print_location(st, SIG_REGS(sc).u_regs[CON_G6]);
317 st->print("G7="); print_location(st, SIG_REGS(sc).u_regs[CON__G7]); 318 st->print("G7="); print_location(st, SIG_REGS(sc).u_regs[CON_G7]);
318 st->cr(); 319 st->cr();
319 320
320 st->print("O0="); print_location(st, SIG_REGS(sc).u_regs[CON__O0]); 321 st->print("O0="); print_location(st, SIG_REGS(sc).u_regs[CON_O0]);
321 st->print("O1="); print_location(st, SIG_REGS(sc).u_regs[CON__O1]); 322 st->print("O1="); print_location(st, SIG_REGS(sc).u_regs[CON_O1]);
322 st->print("O2="); print_location(st, SIG_REGS(sc).u_regs[CON__O2]); 323 st->print("O2="); print_location(st, SIG_REGS(sc).u_regs[CON_O2]);
323 st->print("O3="); print_location(st, SIG_REGS(sc).u_regs[CON__O3]); 324 st->print("O3="); print_location(st, SIG_REGS(sc).u_regs[CON_O3]);
324 st->print("O4="); print_location(st, SIG_REGS(sc).u_regs[CON__O4]); 325 st->print("O4="); print_location(st, SIG_REGS(sc).u_regs[CON_O4]);
325 st->print("O5="); print_location(st, SIG_REGS(sc).u_regs[CON__O5]); 326 st->print("O5="); print_location(st, SIG_REGS(sc).u_regs[CON_O5]);
326 st->print("O6="); print_location(st, SIG_REGS(sc).u_regs[CON__O6]); 327 st->print("O6="); print_location(st, SIG_REGS(sc).u_regs[CON_O6]);
327 st->print("O7="); print_location(st, SIG_REGS(sc).u_regs[CON__O7]); 328 st->print("O7="); print_location(st, SIG_REGS(sc).u_regs[CON_O7]);
328 st->cr(); 329 st->cr();
329 330
330 st->print("L0="); print_location(st, sp[L0->sp_offset_in_saved_window()]); 331 st->print("L0="); print_location(st, sp[L0->sp_offset_in_saved_window()]);
331 st->print("L1="); print_location(st, sp[L1->sp_offset_in_saved_window()]); 332 st->print("L1="); print_location(st, sp[L1->sp_offset_in_saved_window()]);
332 st->print("L2="); print_location(st, sp[L2->sp_offset_in_saved_window()]); 333 st->print("L2="); print_location(st, sp[L2->sp_offset_in_saved_window()]);
514 inline static bool checkICMiss(sigcontext* uc, address* pc, address* stub) { 515 inline static bool checkICMiss(sigcontext* uc, address* pc, address* stub) {
515 #ifdef COMPILER2 516 #ifdef COMPILER2
516 if (nativeInstruction_at(*pc)->is_ic_miss_trap()) { 517 if (nativeInstruction_at(*pc)->is_ic_miss_trap()) {
517 #ifdef ASSERT 518 #ifdef ASSERT
518 #ifdef TIERED 519 #ifdef TIERED
519 CodeBlob* cb = CodeCache::find_blob_unsafe(pc); 520 CodeBlob* cb = CodeCache::find_blob_unsafe(*pc);
520 assert(cb->is_compiled_by_c2(), "Wrong compiler"); 521 assert(cb->is_compiled_by_c2(), "Wrong compiler");
521 #endif // TIERED 522 #endif // TIERED
522 #endif // ASSERT 523 #endif // ASSERT
523 // Inline cache missed and user trap "Tne G0+ST_RESERVED_FOR_USER_0+2" taken. 524 // Inline cache missed and user trap "Tne G0+ST_RESERVED_FOR_USER_0+2" taken.
524 *stub = SharedRuntime::get_ic_miss_stub(); 525 *stub = SharedRuntime::get_ic_miss_stub();