require '_h2ph_pre.ph';

no warnings 'redefine';

unless(defined(&_AMD64_MCONTEXT_H_)) {
    eval 'sub _AMD64_MCONTEXT_H_ () {1;}' unless defined(&_AMD64_MCONTEXT_H_);
    eval 'sub _NGREG () {26;}' unless defined(&_NGREG);
    eval 'sub _REG_RDI () {0;}' unless defined(&_REG_RDI);
    eval 'sub _REG_RSI () {1;}' unless defined(&_REG_RSI);
    eval 'sub _REG_RDX () {2;}' unless defined(&_REG_RDX);
    eval 'sub _REG_RCX () {3;}' unless defined(&_REG_RCX);
    eval 'sub _REG_R8 () {4;}' unless defined(&_REG_R8);
    eval 'sub _REG_R9 () {5;}' unless defined(&_REG_R9);
    eval 'sub _REG_R10 () {6;}' unless defined(&_REG_R10);
    eval 'sub _REG_R11 () {7;}' unless defined(&_REG_R11);
    eval 'sub _REG_R12 () {8;}' unless defined(&_REG_R12);
    eval 'sub _REG_R13 () {9;}' unless defined(&_REG_R13);
    eval 'sub _REG_R14 () {10;}' unless defined(&_REG_R14);
    eval 'sub _REG_R15 () {11;}' unless defined(&_REG_R15);
    eval 'sub _REG_RBP () {12;}' unless defined(&_REG_RBP);
    eval 'sub _REG_RBX () {13;}' unless defined(&_REG_RBX);
    eval 'sub _REG_RAX () {14;}' unless defined(&_REG_RAX);
    eval 'sub _REG_GS () {15;}' unless defined(&_REG_GS);
    eval 'sub _REG_FS () {16;}' unless defined(&_REG_FS);
    eval 'sub _REG_ES () {17;}' unless defined(&_REG_ES);
    eval 'sub _REG_DS () {18;}' unless defined(&_REG_DS);
    eval 'sub _REG_TRAPNO () {19;}' unless defined(&_REG_TRAPNO);
    eval 'sub _REG_ERR () {20;}' unless defined(&_REG_ERR);
    eval 'sub _REG_RIP () {21;}' unless defined(&_REG_RIP);
    eval 'sub _REG_CS () {22;}' unless defined(&_REG_CS);
    eval 'sub _REG_RFL () {23;}' unless defined(&_REG_RFL);
    eval 'sub _REG_URSP () {24;}' unless defined(&_REG_URSP);
    eval 'sub _REG_SS () {25;}' unless defined(&_REG_SS);
    eval 'sub _UC_UCONTEXT_ALIGN () {(~0xf);}' unless defined(&_UC_UCONTEXT_ALIGN);
    if(defined(&_KERNEL)) {
	eval 'sub _UC_MACHINE_SP {
	    my($uc) = @_;
    	    eval q((($uc)-> ($uc_mcontext->{__gregs[&_REG_URSP]})));
	}' unless defined(&_UC_MACHINE_SP);
    }
}
1;
