451
452 run_chained_handler:
453
454 // signal-chaining
455 if (os::Aix::chained_handler(sig, info, ucVoid)) {
456 return 1;
457 }
458 if (!abort_if_unrecognized) {
459 // caller wants another chance, so give it to him
460 return 0;
461 }
462
463 report_and_die:
464
465 // Use sigthreadmask instead of sigprocmask on AIX and unmask current signal.
466 sigset_t newset;
467 sigemptyset(&newset);
468 sigaddset(&newset, sig);
469 sigthreadmask(SIG_UNBLOCK, &newset, NULL);
470
471 VMError err(t, sig, pc, info, ucVoid);
472 err.report_and_die();
473
474 ShouldNotReachHere();
475 return 0;
476 }
477
478 void os::Aix::init_thread_fpu_state(void) {
479 #if !defined(USE_XLC_BUILTINS)
480 // Disable FP exceptions.
481 __asm__ __volatile__ ("mtfsfi 6,0");
482 #else
483 __mtfsfi(6, 0);
484 #endif
485 }
486
487 ////////////////////////////////////////////////////////////////////////////////
488 // thread stack
489
490 size_t os::Aix::min_stack_allowed = 128*K;
491
492 // return default stack size for thr_type
|
451
452 run_chained_handler:
453
454 // signal-chaining
455 if (os::Aix::chained_handler(sig, info, ucVoid)) {
456 return 1;
457 }
458 if (!abort_if_unrecognized) {
459 // caller wants another chance, so give it to him
460 return 0;
461 }
462
463 report_and_die:
464
465 // Use sigthreadmask instead of sigprocmask on AIX and unmask current signal.
466 sigset_t newset;
467 sigemptyset(&newset);
468 sigaddset(&newset, sig);
469 sigthreadmask(SIG_UNBLOCK, &newset, NULL);
470
471 VMError::report_and_die(t, sig, pc, info, ucVoid);
472
473 ShouldNotReachHere();
474 return 0;
475 }
476
477 void os::Aix::init_thread_fpu_state(void) {
478 #if !defined(USE_XLC_BUILTINS)
479 // Disable FP exceptions.
480 __asm__ __volatile__ ("mtfsfi 6,0");
481 #else
482 __mtfsfi(6, 0);
483 #endif
484 }
485
486 ////////////////////////////////////////////////////////////////////////////////
487 // thread stack
488
489 size_t os::Aix::min_stack_allowed = 128*K;
490
491 // return default stack size for thr_type
|