require '_h2ph_pre.ph';

no warnings qw(redefine misc);

if(defined(&__aarch64__)) {
    eval 'sub _JB_MAGIC_AARCH64__SETJMP () {0x4545524348363400;}' unless defined(&_JB_MAGIC_AARCH64__SETJMP);
    eval 'sub _JB_MAGIC_AARCH64_SETJMP () {0x4545524348363401;}' unless defined(&_JB_MAGIC_AARCH64_SETJMP);
    eval 'sub _JBLEN () {(32* $sizeof{ &_BSD_JBSLOT_T_}/$sizeof{\'long\'});}' unless defined(&_JBLEN);
    eval 'sub _JB_MAGIC () {0;}' unless defined(&_JB_MAGIC);
    eval 'sub _JB_SP () {1;}' unless defined(&_JB_SP);
    eval 'sub _JB_X19 () {2;}' unless defined(&_JB_X19);
    eval 'sub _JB_X20 () {3;}' unless defined(&_JB_X20);
    eval 'sub _JB_X21 () {4;}' unless defined(&_JB_X21);
    eval 'sub _JB_X22 () {5;}' unless defined(&_JB_X22);
    eval 'sub _JB_X23 () {6;}' unless defined(&_JB_X23);
    eval 'sub _JB_X24 () {7;}' unless defined(&_JB_X24);
    eval 'sub _JB_X25 () {8;}' unless defined(&_JB_X25);
    eval 'sub _JB_X26 () {9;}' unless defined(&_JB_X26);
    eval 'sub _JB_X27 () {10;}' unless defined(&_JB_X27);
    eval 'sub _JB_X28 () {11;}' unless defined(&_JB_X28);
    eval 'sub _JB_X29 () {12;}' unless defined(&_JB_X29);
    eval 'sub _JB_X30 () {13;}' unless defined(&_JB_X30);
    eval 'sub _JB_D8 () {16;}' unless defined(&_JB_D8);
    eval 'sub _JB_D9 () {17;}' unless defined(&_JB_D9);
    eval 'sub _JB_D10 () {18;}' unless defined(&_JB_D10);
    eval 'sub _JB_D11 () {19;}' unless defined(&_JB_D11);
    eval 'sub _JB_D12 () {20;}' unless defined(&_JB_D12);
    eval 'sub _JB_D13 () {21;}' unless defined(&_JB_D13);
    eval 'sub _JB_D14 () {22;}' unless defined(&_JB_D14);
    eval 'sub _JB_D15 () {23;}' unless defined(&_JB_D15);
    eval 'sub _JB_SIGMASK () {24;}' unless defined(&_JB_SIGMASK);
    unless(defined(&_BSD_JBSLOT_T_)) {
	eval 'sub _BSD_JBSLOT_T_ () {\'long long\';}' unless defined(&_BSD_JBSLOT_T_);
    }
}
 elsif(defined(&__arm__)) {
    require 'arm/setjmp.ph';
}
1;
