require '_h2ph_pre.ph';

no warnings 'redefine';

unless(defined(&_I386_ASM_H_)) {
    eval 'sub _I386_ASM_H_ () {1;}' unless defined(&_I386_ASM_H_);
    if(defined(&PIC)) {
	eval 'sub PIC_PROLOGUE () { &pushl % &ebx;  &call 666 &f; 666:  &popl % &ebx;  &addl $ &_C_LABEL( &_GLOBAL_OFFSET_TABLE_)+[.-666 &b], % &ebx;}' unless defined(&PIC_PROLOGUE);
	eval 'sub PIC_EPILOGUE () { &popl % &ebx;}' unless defined(&PIC_EPILOGUE);
	eval 'sub PIC_PLT {
	    local($x) = @_;
    	    eval q($x@ &PLT);
	}' unless defined(&PIC_PLT);
	eval 'sub PIC_GOT {
	    local($x) = @_;
    	    eval q($x@ &GOT(% &ebx));
	}' unless defined(&PIC_GOT);
	eval 'sub PIC_GOTOFF {
	    local($x) = @_;
    	    eval q($x@ &GOTOFF(% &ebx));
	}' unless defined(&PIC_GOTOFF);
    } else {
	eval 'sub PIC_PROLOGUE () {1;}' unless defined(&PIC_PROLOGUE);
	eval 'sub PIC_EPILOGUE () {1;}' unless defined(&PIC_EPILOGUE);
	eval 'sub PIC_PLT {
	    local($x) = @_;
    	    eval q($x);
	}' unless defined(&PIC_PLT);
	eval 'sub PIC_GOT {
	    local($x) = @_;
    	    eval q($x);
	}' unless defined(&PIC_GOT);
	eval 'sub PIC_GOTOFF {
	    local($x) = @_;
    	    eval q($x);
	}' unless defined(&PIC_GOTOFF);
    }
    eval 'sub _C_LABEL {
        local($name) = @_;
	    eval q($name);
    }' unless defined(&_C_LABEL);
    eval 'sub _ASM_LABEL {
        local($x) = @_;
	    eval q($x);
    }' unless defined(&_ASM_LABEL);
    eval 'sub CVAROFF {
        local($x, $y) = @_;
	    eval q( &_C_LABEL($x) + $y);
    }' unless defined(&CVAROFF);
    if(defined(&__STDC__)) {
	eval 'sub __CONCAT {
	    local($x,$y) = @_;
    	    eval q($x  $y);
	}' unless defined(&__CONCAT);
	eval 'sub __STRING {
	    local($x) = @_;
    	    eval q($x);
	}' unless defined(&__STRING);
    } else {
	eval 'sub __CONCAT {
	    local($x,$y) = @_;
    	    eval q($x $y);
	}' unless defined(&__CONCAT);
	eval 'sub __STRING {
	    local($x) = @_;
    	    eval q(\\"x\\");
	}' unless defined(&__STRING);
    }
    eval 'sub WEAK_ALIAS {
        local($alias,$sym) = @_;
	    eval q(. &weak $alias; $alias = $sym);
    }' unless defined(&WEAK_ALIAS);
    eval 'sub WARN_REFERENCES {
        local($_sym,$_msg) = @_;
	    eval q(. &section . ($gnu->{warning}).  $_sym ; . &ascii $_msg ; . &text);
    }' unless defined(&WARN_REFERENCES);
    unless(defined(&_ALIGN_TEXT)) {
	eval 'sub _ALIGN_TEXT () {. &align 2, 0x90;}' unless defined(&_ALIGN_TEXT);
    }
    eval 'sub _ENTRY {
        local($x) = @_;
	    eval q(. &text;  &_ALIGN_TEXT; . &globl $x; . &type $x,@ &function; $x:);
    }' unless defined(&_ENTRY);
    if(defined(&GPROF)) {
	eval 'sub _PROF_PROLOGUE () { &pushl % &ebp;  &movl % &esp,% &ebp;  &call  &PIC_PLT( &mcount);  &popl % &ebp;}' unless defined(&_PROF_PROLOGUE);
    } else {
	eval 'sub _PROF_PROLOGUE () {1;}' unless defined(&_PROF_PROLOGUE);
    }
    eval 'sub ENTRY {
        local($y) = @_;
	    eval q( &_ENTRY( &_C_LABEL($y));  &_PROF_PROLOGUE);
    }' unless defined(&ENTRY);
    eval 'sub NENTRY {
        local($y) = @_;
	    eval q( &_ENTRY( &_C_LABEL($y)));
    }' unless defined(&NENTRY);
    eval 'sub ASENTRY {
        local($y) = @_;
	    eval q( &_ENTRY( &_ASM_LABEL($y));  &_PROF_PROLOGUE);
    }' unless defined(&ASENTRY);
    eval 'sub ALTENTRY {
        local($name) = @_;
	    eval q(. &globl  &_C_LABEL($name);  &_C_LABEL($name):);
    }' unless defined(&ALTENTRY);
    eval 'sub ASMSTR () {. &asciz;}' unless defined(&ASMSTR);
    eval 'sub RCSID {
        local($x) = @_;
	    eval q(. &text; . &asciz $x);
    }' unless defined(&RCSID);
}
1;
