Mercurial > hg > graal-jvmci-8
comparison src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp @ 17940:7f77d17d0f13
8042059: Various fixes to linux/sparc
Reviewed-by: twisti, kvn
author | mikael |
---|---|
date | Tue, 29 Apr 2014 22:05:10 -0700 |
parents | 55fb97c4c58d |
children | 52b4284cb496 1cddf026d2cc |
comparison
equal
deleted
inserted
replaced
17939:0fb5b60ab4a2 | 17940:7f77d17d0f13 |
---|---|
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(); |