     1			/*
     2			 * This file was generated automatically by ExtUtils::ParseXS version 2.10 from the
     3			 * contents of B.xs. Do not edit this file, edit B.xs instead.
     4			 *
     5			 *	ANY CHANGES MADE HERE WILL BE LOST! 
     6			 *
     7			 */
     8			
     9			#line 1 "B.xs"
    10			/*	B.xs
    11			 *
    12			 *	Copyright (c) 1996 Malcolm Beattie
    13			 *
    14			 *	You may distribute under the terms of either the GNU General Public
    15			 *	License or the Artistic License, as specified in the README file.
    16			 *
    17			 */
    18			
    19			#define PERL_NO_GET_CONTEXT
    20			#include "EXTERN.h"
    21			#include "perl.h"
    22			#include "XSUB.h"
    23			
    24			#ifdef PerlIO
    25			typedef PerlIO * InputStream;
    26			#else
    27			typedef FILE * InputStream;
    28			#endif
    29			
    30			
    31			static const char* const svclassnames[] = {
    32			    "B::NULL",
    33			    "B::IV",
    34			    "B::NV",
    35			    "B::RV",
    36			    "B::PV",
    37			    "B::PVIV",
    38			    "B::PVNV",
    39			    "B::PVMG",
    40			    "B::BM",
    41			#if PERL_VERSION >= 9
    42			    "B::GV",
    43			#endif
    44			    "B::PVLV",
    45			    "B::AV",
    46			    "B::HV",
    47			    "B::CV",
    48			#if PERL_VERSION <= 8
    49			    "B::GV",
    50			#endif
    51			    "B::FM",
    52			    "B::IO",
    53			};
    54			
    55			typedef enum {
    56			    OPc_NULL,	/* 0 */
    57			    OPc_BASEOP,	/* 1 */
    58			    OPc_UNOP,	/* 2 */
    59			    OPc_BINOP,	/* 3 */
    60			    OPc_LOGOP,	/* 4 */
    61			    OPc_LISTOP,	/* 5 */
    62			    OPc_PMOP,	/* 6 */
    63			    OPc_SVOP,	/* 7 */
    64			    OPc_PADOP,	/* 8 */
    65			    OPc_PVOP,	/* 9 */
    66			    OPc_LOOP,	/* 10 */
    67			    OPc_COP	/* 11 */
    68			} opclass;
    69			
    70			static const char* const opclassnames[] = {
    71			    "B::NULL",
    72			    "B::OP",
    73			    "B::UNOP",
    74			    "B::BINOP",
    75			    "B::LOGOP",
    76			    "B::LISTOP",
    77			    "B::PMOP",
    78			    "B::SVOP",
    79			    "B::PADOP",
    80			    "B::PVOP",
    81			    "B::LOOP",
    82			    "B::COP"	
    83			};
    84			
    85			static const size_t opsizes[] = {
    86			    0,	
    87			    sizeof(OP),
    88			    sizeof(UNOP),
    89			    sizeof(BINOP),
    90			    sizeof(LOGOP),
    91			    sizeof(LISTOP),
    92			    sizeof(PMOP),
    93			    sizeof(SVOP),
    94			    sizeof(PADOP),
    95			    sizeof(PVOP),
    96			    sizeof(LOOP),
    97			    sizeof(COP)	
    98			};
    99			
   100			#define MY_CXT_KEY "B::_guts" XS_VERSION
   101			
   102			typedef struct {
   103			    int		x_walkoptree_debug;	/* Flag for walkoptree debug hook */
   104			    SV *	x_specialsv_list[7];
   105			} my_cxt_t;
   106			
   107			START_MY_CXT
   108			
   109			#define walkoptree_debug	(MY_CXT.x_walkoptree_debug)
   110			#define specialsv_list		(MY_CXT.x_specialsv_list)
   111			
   112			static opclass
   113			cc_opclass(pTHX_ const OP *o)
   114			{
   115			    if (!o)
   116				return OPc_NULL;
   117			
   118			    if (o->op_type == 0)
   119				return (o->op_flags & OPf_KIDS) ? OPc_UNOP : OPc_BASEOP;
   120			
   121			    if (o->op_type == OP_SASSIGN)
   122				return ((o->op_private & OPpASSIGN_BACKWARDS) ? OPc_UNOP : OPc_BINOP);
   123			
   124			#ifdef USE_ITHREADS
   125			    if (o->op_type == OP_GV || o->op_type == OP_GVSV ||
   126				o->op_type == OP_AELEMFAST || o->op_type == OP_RCATLINE)
   127				return OPc_PADOP;
   128			#endif
   129			
   130			    switch (PL_opargs[o->op_type] & OA_CLASS_MASK) {
   131			    case OA_BASEOP:
   132				return OPc_BASEOP;
   133			
   134			    case OA_UNOP:
   135				return OPc_UNOP;
   136			
   137			    case OA_BINOP:
   138				return OPc_BINOP;
   139			
   140			    case OA_LOGOP:
   141				return OPc_LOGOP;
   142			
   143			    case OA_LISTOP:
   144				return OPc_LISTOP;
   145			
   146			    case OA_PMOP:
   147				return OPc_PMOP;
   148			
   149			    case OA_SVOP:
   150				return OPc_SVOP;
   151			
   152			    case OA_PADOP:
   153				return OPc_PADOP;
   154			
   155			    case OA_PVOP_OR_SVOP:
   156			        /*
   157			         * Character translations (tr///) are usually a PVOP, keeping a 
   158			         * pointer to a table of shorts used to look up translations.
   159			         * Under utf8, however, a simple table isn't practical; instead,
   160			         * the OP is an SVOP, and the SV is a reference to a swash
   161			         * (i.e., an RV pointing to an HV).
   162			         */
   163				return (o->op_private & (OPpTRANS_TO_UTF|OPpTRANS_FROM_UTF))
   164					? OPc_SVOP : OPc_PVOP;
   165			
   166			    case OA_LOOP:
   167				return OPc_LOOP;
   168			
   169			    case OA_COP:
   170				return OPc_COP;
   171			
   172			    case OA_BASEOP_OR_UNOP:
   173				/*
   174				 * UNI(OP_foo) in toke.c returns token UNI or FUNC1 depending on
   175				 * whether parens were seen. perly.y uses OPf_SPECIAL to
   176				 * signal whether a BASEOP had empty parens or none.
   177				 * Some other UNOPs are created later, though, so the best
   178				 * test is OPf_KIDS, which is set in newUNOP.
   179				 */
   180				return (o->op_flags & OPf_KIDS) ? OPc_UNOP : OPc_BASEOP;
   181			
   182			    case OA_FILESTATOP:
   183				/*
   184				 * The file stat OPs are created via UNI(OP_foo) in toke.c but use
   185				 * the OPf_REF flag to distinguish between OP types instead of the
   186				 * usual OPf_SPECIAL flag. As usual, if OPf_KIDS is set, then we
   187				 * return OPc_UNOP so that walkoptree can find our children. If
   188				 * OPf_KIDS is not set then we check OPf_REF. Without OPf_REF set
   189				 * (no argument to the operator) it's an OP; with OPf_REF set it's
   190				 * an SVOP (and op_sv is the GV for the filehandle argument).
   191				 */
   192				return ((o->op_flags & OPf_KIDS) ? OPc_UNOP :
   193			#ifdef USE_ITHREADS
   194					(o->op_flags & OPf_REF) ? OPc_PADOP : OPc_BASEOP);
   195			#else
   196					(o->op_flags & OPf_REF) ? OPc_SVOP : OPc_BASEOP);
   197			#endif
   198			    case OA_LOOPEXOP:
   199				/*
   200				 * next, last, redo, dump and goto use OPf_SPECIAL to indicate that a
   201				 * label was omitted (in which case it's a BASEOP) or else a term was
   202				 * seen. In this last case, all except goto are definitely PVOP but
   203				 * goto is either a PVOP (with an ordinary constant label), an UNOP
   204				 * with OPf_STACKED (with a non-constant non-sub) or an UNOP for
   205				 * OP_REFGEN (with goto &sub) in which case OPf_STACKED also seems to
   206				 * get set.
   207				 */
   208				if (o->op_flags & OPf_STACKED)
   209				    return OPc_UNOP;
   210				else if (o->op_flags & OPf_SPECIAL)
   211				    return OPc_BASEOP;
   212				else
   213				    return OPc_PVOP;
   214			    }
   215			    warn("can't determine class of operator %s, assuming BASEOP\n",
   216				 PL_op_name[o->op_type]);
   217			    return OPc_BASEOP;
   218			}
   219			
   220			static char *
   221			cc_opclassname(pTHX_ const OP *o)
   222			{
   223			    return (char *)opclassnames[cc_opclass(aTHX_ o)];
   224			}
   225			
   226			static SV *
   227			make_sv_object(pTHX_ SV *arg, SV *sv)
   228			{
   229			    const char *type = 0;
   230			    IV iv;
   231			    dMY_CXT;
   232			    
   233			    for (iv = 0; iv < sizeof(specialsv_list)/sizeof(SV*); iv++) {
   234				if (sv == specialsv_list[iv]) {
   235				    type = "B::SPECIAL";
   236				    break;
   237				}
   238			    }
   239			    if (!type) {
   240				type = svclassnames[SvTYPE(sv)];
   241				iv = PTR2IV(sv);
   242			    }
   243			    sv_setiv(newSVrv(arg, type), iv);
   244			    return arg;
   245			}
   246			
   247			static SV *
   248			make_mg_object(pTHX_ SV *arg, MAGIC *mg)
   249			{
   250			    sv_setiv(newSVrv(arg, "B::MAGIC"), PTR2IV(mg));
   251			    return arg;
   252			}
   253			
   254			static SV *
   255			cstring(pTHX_ SV *sv, bool perlstyle)
   256			{
   257			    SV *sstr = newSVpvn("", 0);
   258			
   259			    if (!SvOK(sv))
   260				sv_setpvn(sstr, "0", 1);
   261			    else if (perlstyle && SvUTF8(sv)) {
   262				SV *tmpsv = sv_newmortal(); /* Temporary SV to feed sv_uni_display */
   263				const STRLEN len = SvCUR(sv);
   264				const char *s = sv_uni_display(tmpsv, sv, 8*len, UNI_DISPLAY_QQ);
   265				sv_setpvn(sstr,"\"",1);
   266				while (*s)
   267				{
   268				    if (*s == '"')
   269					sv_catpvn(sstr, "\\\"", 2);
   270				    else if (*s == '$')
   271					sv_catpvn(sstr, "\\$", 2);
   272				    else if (*s == '@')
   273					sv_catpvn(sstr, "\\@", 2);
   274				    else if (*s == '\\')
   275				    {
   276					if (strchr("nrftax\\",*(s+1)))
   277					    sv_catpvn(sstr, s++, 2);
   278					else
   279					    sv_catpvn(sstr, "\\\\", 2);
   280				    }
   281				    else /* should always be printable */
   282					sv_catpvn(sstr, s, 1);
   283				    ++s;
   284				}
   285				sv_catpv(sstr, "\"");
   286				return sstr;
   287			    }
   288			    else
   289			    {
   290				/* XXX Optimise? */
   291				STRLEN len;
   292				const char *s = SvPV(sv, len);
   293				sv_catpv(sstr, "\"");
   294				for (; len; len--, s++)
   295				{
   296				    /* At least try a little for readability */
   297				    if (*s == '"')
   298					sv_catpv(sstr, "\\\"");
   299				    else if (*s == '\\')
   300					sv_catpv(sstr, "\\\\");
   301			            /* trigraphs - bleagh */
   302			            else if (!perlstyle && *s == '?' && len>=3 && s[1] == '?') {
   303					char escbuff[5]; /* to fit backslash, 3 octals + trailing \0 */
   304			                sprintf(escbuff, "\\%03o", '?');
   305			                sv_catpv(sstr, escbuff);
   306			            }
   307				    else if (perlstyle && *s == '$')
   308					sv_catpv(sstr, "\\$");
   309				    else if (perlstyle && *s == '@')
   310					sv_catpv(sstr, "\\@");
   311			#ifdef EBCDIC
   312				    else if (isPRINT(*s))
   313			#else
   314				    else if (*s >= ' ' && *s < 127)
   315			#endif /* EBCDIC */
   316					sv_catpvn(sstr, s, 1);
   317				    else if (*s == '\n')
   318					sv_catpv(sstr, "\\n");
   319				    else if (*s == '\r')
   320					sv_catpv(sstr, "\\r");
   321				    else if (*s == '\t')
   322					sv_catpv(sstr, "\\t");
   323				    else if (*s == '\a')
   324					sv_catpv(sstr, "\\a");
   325				    else if (*s == '\b')
   326					sv_catpv(sstr, "\\b");
   327				    else if (*s == '\f')
   328					sv_catpv(sstr, "\\f");
   329				    else if (!perlstyle && *s == '\v')
   330					sv_catpv(sstr, "\\v");
   331				    else
   332				    {
   333					/* Don't want promotion of a signed -1 char in sprintf args */
   334					char escbuff[5]; /* to fit backslash, 3 octals + trailing \0 */
   335					const unsigned char c = (unsigned char) *s;
   336					sprintf(escbuff, "\\%03o", c);
   337					sv_catpv(sstr, escbuff);
   338				    }
   339				    /* XXX Add line breaks if string is long */
   340				}
   341				sv_catpv(sstr, "\"");
   342			    }
   343			    return sstr;
   344			}
   345			
   346			static SV *
   347			cchar(pTHX_ SV *sv)
   348			{
   349			    SV *sstr = newSVpvn("'", 1);
   350			    const char *s = SvPV_nolen(sv);
   351			
   352			    if (*s == '\'')
   353				sv_catpvn(sstr, "\\'", 2);
   354			    else if (*s == '\\')
   355				sv_catpvn(sstr, "\\\\", 2);
   356			#ifdef EBCDIC
   357			    else if (isPRINT(*s))
   358			#else
   359			    else if (*s >= ' ' && *s < 127)
   360			#endif /* EBCDIC */
   361				sv_catpvn(sstr, s, 1);
   362			    else if (*s == '\n')
   363				sv_catpvn(sstr, "\\n", 2);
   364			    else if (*s == '\r')
   365				sv_catpvn(sstr, "\\r", 2);
   366			    else if (*s == '\t')
   367				sv_catpvn(sstr, "\\t", 2);
   368			    else if (*s == '\a')
   369				sv_catpvn(sstr, "\\a", 2);
   370			    else if (*s == '\b')
   371				sv_catpvn(sstr, "\\b", 2);
   372			    else if (*s == '\f')
   373				sv_catpvn(sstr, "\\f", 2);
   374			    else if (*s == '\v')
   375				sv_catpvn(sstr, "\\v", 2);
   376			    else
   377			    {
   378				/* no trigraph support */
   379				char escbuff[5]; /* to fit backslash, 3 octals + trailing \0 */
   380				/* Don't want promotion of a signed -1 char in sprintf args */
   381				unsigned char c = (unsigned char) *s;
   382				sprintf(escbuff, "\\%03o", c);
   383				sv_catpv(sstr, escbuff);
   384			    }
   385			    sv_catpvn(sstr, "'", 1);
   386			    return sstr;
   387			}
   388			
   389			static void
   390			walkoptree(pTHX_ SV *opsv, const char *method)
   391			{
   392			    dSP;
   393			    OP *o, *kid;
   394			    dMY_CXT;
   395			
   396			    if (!SvROK(opsv))
   397				croak("opsv is not a reference");
   398			    opsv = sv_mortalcopy(opsv);
   399			    o = INT2PTR(OP*,SvIV((SV*)SvRV(opsv)));
   400			    if (walkoptree_debug) {
   401				PUSHMARK(sp);
   402				XPUSHs(opsv);
   403				PUTBACK;
   404				perl_call_method("walkoptree_debug", G_DISCARD);
   405			    }
   406			    PUSHMARK(sp);
   407			    XPUSHs(opsv);
   408			    PUTBACK;
   409			    perl_call_method(method, G_DISCARD);
   410			    if (o && (o->op_flags & OPf_KIDS)) {
   411				for (kid = ((UNOP*)o)->op_first; kid; kid = kid->op_sibling) {
   412				    /* Use the same opsv. Rely on methods not to mess it up. */
   413				    sv_setiv(newSVrv(opsv, cc_opclassname(aTHX_ kid)), PTR2IV(kid));
   414				    walkoptree(aTHX_ opsv, method);
   415				}
   416			    }
   417			    if (o && (cc_opclass(aTHX_ o) == OPc_PMOP) && o->op_type != OP_PUSHRE
   418				    && (kid = cPMOPo->op_pmreplroot))
   419			    {
   420				sv_setiv(newSVrv(opsv, cc_opclassname(aTHX_ kid)), PTR2IV(kid));
   421				walkoptree(aTHX_ opsv, method);
   422			    }
   423			}
   424			
   425			static SV **
   426			oplist(pTHX_ OP *o, SV **SP)
   427			{
   428			    for(; o; o = o->op_next) {
   429				SV *opsv;
   430			#if PERL_VERSION >= 9
   431				if (o->op_opt == 0)
   432				    break;
   433				o->op_opt = 0;
   434			#else
   435				if (o->op_seq == 0)
   436				    break;
   437				o->op_seq = 0;
   438			#endif
   439				opsv = sv_newmortal();
   440				sv_setiv(newSVrv(opsv, cc_opclassname(aTHX_ (OP*)o)), PTR2IV(o));
   441				XPUSHs(opsv);
   442			        switch (o->op_type) {
   443				case OP_SUBST:
   444			            SP = oplist(aTHX_ cPMOPo->op_pmreplstart, SP);
   445			            continue;
   446				case OP_SORT:
   447				    if (o->op_flags & OPf_STACKED && o->op_flags & OPf_SPECIAL) {
   448					OP *kid = cLISTOPo->op_first->op_sibling;   /* pass pushmark */
   449					kid = kUNOP->op_first;                      /* pass rv2gv */
   450					kid = kUNOP->op_first;                      /* pass leave */
   451					SP = oplist(aTHX_ kid->op_next, SP);
   452				    }
   453				    continue;
   454			        }
   455				switch (PL_opargs[o->op_type] & OA_CLASS_MASK) {
   456				case OA_LOGOP:
   457				    SP = oplist(aTHX_ cLOGOPo->op_other, SP);
   458				    break;
   459				case OA_LOOP:
   460				    SP = oplist(aTHX_ cLOOPo->op_lastop, SP);
   461				    SP = oplist(aTHX_ cLOOPo->op_nextop, SP);
   462				    SP = oplist(aTHX_ cLOOPo->op_redoop, SP);
   463				    break;
   464				}
   465			    }
   466			    return SP;
   467			}
   468			
   469			typedef OP	*B__OP;
   470			typedef UNOP	*B__UNOP;
   471			typedef BINOP	*B__BINOP;
   472			typedef LOGOP	*B__LOGOP;
   473			typedef LISTOP	*B__LISTOP;
   474			typedef PMOP	*B__PMOP;
   475			typedef SVOP	*B__SVOP;
   476			typedef PADOP	*B__PADOP;
   477			typedef PVOP	*B__PVOP;
   478			typedef LOOP	*B__LOOP;
   479			typedef COP	*B__COP;
   480			
   481			typedef SV	*B__SV;
   482			typedef SV	*B__IV;
   483			typedef SV	*B__PV;
   484			typedef SV	*B__NV;
   485			typedef SV	*B__PVMG;
   486			typedef SV	*B__PVLV;
   487			typedef SV	*B__BM;
   488			typedef SV	*B__RV;
   489			typedef SV	*B__FM;
   490			typedef AV	*B__AV;
   491			typedef HV	*B__HV;
   492			typedef CV	*B__CV;
   493			typedef GV	*B__GV;
   494			typedef IO	*B__IO;
   495			
   496			typedef MAGIC	*B__MAGIC;
   497			
   498			#ifndef PERL_UNUSED_VAR
   499			#  define PERL_UNUSED_VAR(var) if (0) var = var
   500			#endif
   501			
   502			#line 503 "B.c"
   503			#define B_main_cv()	PL_main_cv
   504			#define B_init_av()	PL_initav
   505			#define B_inc_gv()	PL_incgv
   506			#define B_check_av()	PL_checkav_save
   507			#define B_begin_av()	PL_beginav_save
   508			#define B_end_av()	PL_endav
   509			#define B_main_root()	PL_main_root
   510			#define B_main_start()	PL_main_start
   511			#define B_amagic_generation()	PL_amagic_generation
   512			#define B_defstash()	PL_defstash
   513			#define B_curstash()	PL_curstash
   514			#define B_dowarn()	PL_dowarn
   515			#define B_comppadlist()	(PL_main_cv ? CvPADLIST(PL_main_cv) : CvPADLIST(PL_compcv))
   516			#define B_sv_undef()	&PL_sv_undef
   517			#define B_sv_yes()	&PL_sv_yes
   518			#define B_sv_no()	&PL_sv_no
   519			#define B_formfeed()	PL_formfeed
   520			#ifdef USE_ITHREADS
   521			#define B_regex_padav()	PL_regex_padav
   522			#endif
   523			
   524			XS(XS_B_init_av); /* prototype to pass -Wmissing-prototypes */
   525			XS(XS_B_init_av)
   526	          25    {
   527	          25        dXSARGS;
   528	          25        if (items != 0)
   529	      ######    	Perl_croak(aTHX_ "Usage: B::init_av()");
   530	          25        PERL_UNUSED_VAR(cv); /* -W */
   531			    {
   532	          25    	B__AV	RETVAL;
   533			
   534	          25    	RETVAL = B_init_av();
   535	          25    	ST(0) = sv_newmortal();
   536	          25    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
   537			
   538			
   539			    }
   540	          25        XSRETURN(1);
   541			}
   542			
   543			
   544			XS(XS_B_check_av); /* prototype to pass -Wmissing-prototypes */
   545			XS(XS_B_check_av)
   546	           8    {
   547	           8        dXSARGS;
   548	           8        if (items != 0)
   549	      ######    	Perl_croak(aTHX_ "Usage: B::check_av()");
   550	           8        PERL_UNUSED_VAR(cv); /* -W */
   551			    {
   552	           8    	B__AV	RETVAL;
   553			
   554	           8    	RETVAL = B_check_av();
   555	           8    	ST(0) = sv_newmortal();
   556	           8    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
   557			
   558			
   559			    }
   560	           8        XSRETURN(1);
   561			}
   562			
   563			
   564			XS(XS_B_begin_av); /* prototype to pass -Wmissing-prototypes */
   565			XS(XS_B_begin_av)
   566	          27    {
   567	          27        dXSARGS;
   568	          27        if (items != 0)
   569	      ######    	Perl_croak(aTHX_ "Usage: B::begin_av()");
   570	          27        PERL_UNUSED_VAR(cv); /* -W */
   571			    {
   572	          27    	B__AV	RETVAL;
   573			
   574	          27    	RETVAL = B_begin_av();
   575	          27    	ST(0) = sv_newmortal();
   576	          27    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
   577			
   578			
   579			    }
   580	          27        XSRETURN(1);
   581			}
   582			
   583			
   584			XS(XS_B_end_av); /* prototype to pass -Wmissing-prototypes */
   585			XS(XS_B_end_av)
   586	          25    {
   587	          25        dXSARGS;
   588	          25        if (items != 0)
   589	      ######    	Perl_croak(aTHX_ "Usage: B::end_av()");
   590	          25        PERL_UNUSED_VAR(cv); /* -W */
   591			    {
   592	          25    	B__AV	RETVAL;
   593			
   594	          25    	RETVAL = B_end_av();
   595	          25    	ST(0) = sv_newmortal();
   596	          25    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
   597			
   598			
   599			    }
   600	          25        XSRETURN(1);
   601			}
   602			
   603			
   604			XS(XS_B_inc_gv); /* prototype to pass -Wmissing-prototypes */
   605			XS(XS_B_inc_gv)
   606	      ######    {
   607	      ######        dXSARGS;
   608	      ######        if (items != 0)
   609	      ######    	Perl_croak(aTHX_ "Usage: B::inc_gv()");
   610	      ######        PERL_UNUSED_VAR(cv); /* -W */
   611			    {
   612	      ######    	B__GV	RETVAL;
   613			
   614	      ######    	RETVAL = B_inc_gv();
   615	      ######    	ST(0) = sv_newmortal();
   616	      ######    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
   617			
   618			
   619			    }
   620	      ######        XSRETURN(1);
   621			}
   622			
   623			#ifdef USE_ITHREADS
   624			#define XSubPPtmpAAAA 1
   625			
   626			
   627			XS(XS_B_regex_padav); /* prototype to pass -Wmissing-prototypes */
   628			XS(XS_B_regex_padav)
   629			{
   630			    dXSARGS;
   631			    if (items != 0)
   632				Perl_croak(aTHX_ "Usage: B::regex_padav()");
   633			    PERL_UNUSED_VAR(cv); /* -W */
   634			    {
   635				B__AV	RETVAL;
   636			
   637				RETVAL = B_regex_padav();
   638				ST(0) = sv_newmortal();
   639				make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
   640			
   641			
   642			    }
   643			    XSRETURN(1);
   644			}
   645			
   646			#endif
   647			
   648			XS(XS_B_main_cv); /* prototype to pass -Wmissing-prototypes */
   649			XS(XS_B_main_cv)
   650	          48    {
   651	          48        dXSARGS;
   652	          48        if (items != 0)
   653	      ######    	Perl_croak(aTHX_ "Usage: B::main_cv()");
   654	          48        PERL_UNUSED_VAR(cv); /* -W */
   655			    {
   656	          48    	B__CV	RETVAL;
   657			
   658	          48    	RETVAL = B_main_cv();
   659	          48    	ST(0) = sv_newmortal();
   660	          48    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
   661			
   662			
   663			    }
   664	          48        XSRETURN(1);
   665			}
   666			
   667			
   668			XS(XS_B_main_root); /* prototype to pass -Wmissing-prototypes */
   669			XS(XS_B_main_root)
   670	          80    {
   671	          80        dXSARGS;
   672	          80        if (items != 0)
   673	      ######    	Perl_croak(aTHX_ "Usage: B::main_root()");
   674	          80        PERL_UNUSED_VAR(cv); /* -W */
   675			    {
   676	          80    	B__OP	RETVAL;
   677			
   678	          80    	RETVAL = B_main_root();
   679	          80    	ST(0) = sv_newmortal();
   680	          80    	sv_setiv(newSVrv(ST(0), cc_opclassname(aTHX_ (OP*)RETVAL)), PTR2IV(RETVAL));
   681			
   682			    }
   683	          80        XSRETURN(1);
   684			}
   685			
   686			
   687			XS(XS_B_main_start); /* prototype to pass -Wmissing-prototypes */
   688			XS(XS_B_main_start)
   689	          76    {
   690	          76        dXSARGS;
   691	          76        if (items != 0)
   692	      ######    	Perl_croak(aTHX_ "Usage: B::main_start()");
   693	          76        PERL_UNUSED_VAR(cv); /* -W */
   694			    {
   695	          76    	B__OP	RETVAL;
   696			
   697	          76    	RETVAL = B_main_start();
   698	          76    	ST(0) = sv_newmortal();
   699	          76    	sv_setiv(newSVrv(ST(0), cc_opclassname(aTHX_ (OP*)RETVAL)), PTR2IV(RETVAL));
   700			
   701			    }
   702	          76        XSRETURN(1);
   703			}
   704			
   705			
   706			XS(XS_B_amagic_generation); /* prototype to pass -Wmissing-prototypes */
   707			XS(XS_B_amagic_generation)
   708	      ######    {
   709	      ######        dXSARGS;
   710	      ######        if (items != 0)
   711	      ######    	Perl_croak(aTHX_ "Usage: B::amagic_generation()");
   712	      ######        PERL_UNUSED_VAR(cv); /* -W */
   713			    {
   714	      ######    	long	RETVAL;
   715	      ######    	dXSTARG;
   716			
   717	      ######    	RETVAL = B_amagic_generation();
   718	      ######    	XSprePUSH; PUSHi((IV)RETVAL);
   719			    }
   720	      ######        XSRETURN(1);
   721			}
   722			
   723			
   724			XS(XS_B_comppadlist); /* prototype to pass -Wmissing-prototypes */
   725			XS(XS_B_comppadlist)
   726	          23    {
   727	          23        dXSARGS;
   728	          23        if (items != 0)
   729	      ######    	Perl_croak(aTHX_ "Usage: B::comppadlist()");
   730	          23        PERL_UNUSED_VAR(cv); /* -W */
   731			    {
   732	          23    	B__AV	RETVAL;
   733			
   734	          23    	RETVAL = B_comppadlist();
   735	          23    	ST(0) = sv_newmortal();
   736	          23    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
   737			
   738			
   739			    }
   740	          23        XSRETURN(1);
   741			}
   742			
   743			
   744			XS(XS_B_sv_undef); /* prototype to pass -Wmissing-prototypes */
   745			XS(XS_B_sv_undef)
   746	      ######    {
   747	      ######        dXSARGS;
   748	      ######        if (items != 0)
   749	      ######    	Perl_croak(aTHX_ "Usage: B::sv_undef()");
   750	      ######        PERL_UNUSED_VAR(cv); /* -W */
   751			    {
   752	      ######    	B__SV	RETVAL;
   753			
   754	      ######    	RETVAL = B_sv_undef();
   755	      ######    	ST(0) = sv_newmortal();
   756	      ######    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
   757			
   758			
   759			    }
   760	      ######        XSRETURN(1);
   761			}
   762			
   763			
   764			XS(XS_B_sv_yes); /* prototype to pass -Wmissing-prototypes */
   765			XS(XS_B_sv_yes)
   766	      ######    {
   767	      ######        dXSARGS;
   768	      ######        if (items != 0)
   769	      ######    	Perl_croak(aTHX_ "Usage: B::sv_yes()");
   770	      ######        PERL_UNUSED_VAR(cv); /* -W */
   771			    {
   772	      ######    	B__SV	RETVAL;
   773			
   774	      ######    	RETVAL = B_sv_yes();
   775	      ######    	ST(0) = sv_newmortal();
   776	      ######    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
   777			
   778			
   779			    }
   780	      ######        XSRETURN(1);
   781			}
   782			
   783			
   784			XS(XS_B_sv_no); /* prototype to pass -Wmissing-prototypes */
   785			XS(XS_B_sv_no)
   786	      ######    {
   787	      ######        dXSARGS;
   788	      ######        if (items != 0)
   789	      ######    	Perl_croak(aTHX_ "Usage: B::sv_no()");
   790	      ######        PERL_UNUSED_VAR(cv); /* -W */
   791			    {
   792	      ######    	B__SV	RETVAL;
   793			
   794	      ######    	RETVAL = B_sv_no();
   795	      ######    	ST(0) = sv_newmortal();
   796	      ######    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
   797			
   798			
   799			    }
   800	      ######        XSRETURN(1);
   801			}
   802			
   803			
   804			XS(XS_B_curstash); /* prototype to pass -Wmissing-prototypes */
   805			XS(XS_B_curstash)
   806	      ######    {
   807	      ######        dXSARGS;
   808	      ######        if (items != 0)
   809	      ######    	Perl_croak(aTHX_ "Usage: B::curstash()");
   810	      ######        PERL_UNUSED_VAR(cv); /* -W */
   811			    {
   812	      ######    	B__HV	RETVAL;
   813			
   814	      ######    	RETVAL = B_curstash();
   815	      ######    	ST(0) = sv_newmortal();
   816	      ######    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
   817			
   818			
   819			    }
   820	      ######        XSRETURN(1);
   821			}
   822			
   823			
   824			XS(XS_B_defstash); /* prototype to pass -Wmissing-prototypes */
   825			XS(XS_B_defstash)
   826	          38    {
   827	          38        dXSARGS;
   828	          38        if (items != 0)
   829	      ######    	Perl_croak(aTHX_ "Usage: B::defstash()");
   830	          38        PERL_UNUSED_VAR(cv); /* -W */
   831			    {
   832	          38    	B__HV	RETVAL;
   833			
   834	          38    	RETVAL = B_defstash();
   835	          38    	ST(0) = sv_newmortal();
   836	          38    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
   837			
   838			
   839			    }
   840	          38        XSRETURN(1);
   841			}
   842			
   843			
   844			XS(XS_B_dowarn); /* prototype to pass -Wmissing-prototypes */
   845			XS(XS_B_dowarn)
   846	          19    {
   847	          19        dXSARGS;
   848	          19        if (items != 0)
   849	      ######    	Perl_croak(aTHX_ "Usage: B::dowarn()");
   850	          19        PERL_UNUSED_VAR(cv); /* -W */
   851			    {
   852	          19    	U8	RETVAL;
   853	          19    	dXSTARG;
   854			
   855	          19    	RETVAL = B_dowarn();
   856	          19    	XSprePUSH; PUSHu((UV)RETVAL);
   857			    }
   858	          19        XSRETURN(1);
   859			}
   860			
   861			
   862			XS(XS_B_formfeed); /* prototype to pass -Wmissing-prototypes */
   863			XS(XS_B_formfeed)
   864	      ######    {
   865	      ######        dXSARGS;
   866	      ######        if (items != 0)
   867	      ######    	Perl_croak(aTHX_ "Usage: B::formfeed()");
   868	      ######        PERL_UNUSED_VAR(cv); /* -W */
   869			    {
   870	      ######    	B__SV	RETVAL;
   871			
   872	      ######    	RETVAL = B_formfeed();
   873	      ######    	ST(0) = sv_newmortal();
   874	      ######    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
   875			
   876			
   877			    }
   878	      ######        XSRETURN(1);
   879			}
   880			
   881			
   882			XS(XS_B_warnhook); /* prototype to pass -Wmissing-prototypes */
   883			XS(XS_B_warnhook)
   884	          19    {
   885	          19        dXSARGS;
   886	          19        if (items != 0)
   887	      ######    	Perl_croak(aTHX_ "Usage: B::warnhook()");
   888	          19        PERL_UNUSED_VAR(cv); /* -W */
   889			    {
   890			#line 593 "B.xs"
   891				ST(0) = make_sv_object(aTHX_ sv_newmortal(), PL_warnhook);
   892			#line 893 "B.c"
   893			    }
   894	          19        XSRETURN(1);
   895			}
   896			
   897			
   898			XS(XS_B_diehook); /* prototype to pass -Wmissing-prototypes */
   899			XS(XS_B_diehook)
   900	      ######    {
   901	      ######        dXSARGS;
   902	      ######        if (items != 0)
   903	      ######    	Perl_croak(aTHX_ "Usage: B::diehook()");
   904	      ######        PERL_UNUSED_VAR(cv); /* -W */
   905			    {
   906			#line 598 "B.xs"
   907				ST(0) = make_sv_object(aTHX_ sv_newmortal(), PL_diehook);
   908			#line 909 "B.c"
   909			    }
   910	      ######        XSRETURN(1);
   911			}
   912			
   913			
   914			XS(XS_B_walkoptree); /* prototype to pass -Wmissing-prototypes */
   915			XS(XS_B_walkoptree)
   916	           1    {
   917	           1        dXSARGS;
   918	           1        if (items != 2)
   919	      ######    	Perl_croak(aTHX_ "Usage: B::walkoptree(opsv, method)");
   920	           1        PERL_UNUSED_VAR(cv); /* -W */
   921			    {
   922	           1    	SV *	opsv = ST(0);
   923	           1    	const char *	method = (const char *)SvPV_nolen(ST(1));
   924			#line 607 "B.xs"
   925				walkoptree(aTHX_ opsv, method);
   926			#line 927 "B.c"
   927			    }
   928	           1        XSRETURN_EMPTY;
   929			}
   930			
   931			
   932			XS(XS_B_walkoptree_debug); /* prototype to pass -Wmissing-prototypes */
   933			XS(XS_B_walkoptree_debug)
   934	      ######    {
   935	      ######        dXSARGS;
   936	      ######        PERL_UNUSED_VAR(cv); /* -W */
   937			    {
   938	      ######    	int	RETVAL;
   939	      ######    	dXSTARG;
   940			#line 612 "B.xs"
   941				dMY_CXT;
   942				RETVAL = walkoptree_debug;
   943				if (items > 0 && SvTRUE(ST(1)))
   944				    walkoptree_debug = 1;
   945			#line 946 "B.c"
   946	      ######    	XSprePUSH; PUSHi((IV)RETVAL);
   947			    }
   948	      ######        XSRETURN(1);
   949			}
   950			
   951			#define address(sv) PTR2IV(sv)
   952			
   953			XS(XS_B_address); /* prototype to pass -Wmissing-prototypes */
   954			XS(XS_B_address)
   955	      ######    {
   956	      ######        dXSARGS;
   957	      ######        if (items != 1)
   958	      ######    	Perl_croak(aTHX_ "Usage: B::address(sv)");
   959	      ######        PERL_UNUSED_VAR(cv); /* -W */
   960			    {
   961	      ######    	SV *	sv = ST(0);
   962	      ######    	IV	RETVAL;
   963	      ######    	dXSTARG;
   964			
   965	      ######    	RETVAL = address(sv);
   966	      ######    	XSprePUSH; PUSHi((IV)RETVAL);
   967			    }
   968	      ######        XSRETURN(1);
   969			}
   970			
   971			
   972			XS(XS_B_svref_2object); /* prototype to pass -Wmissing-prototypes */
   973			XS(XS_B_svref_2object)
   974	        2793    {
   975	        2793        dXSARGS;
   976	        2793        if (items != 1)
   977	      ######    	Perl_croak(aTHX_ "Usage: B::svref_2object(sv)");
   978	        2793        PERL_UNUSED_VAR(cv); /* -W */
   979			    {
   980	        2793    	SV *	sv = ST(0);
   981	        2793    	B__SV	RETVAL;
   982			#line 629 "B.xs"
   983				if (!SvROK(sv))
   984				    croak("argument is not a reference");
   985				RETVAL = (SV*)SvRV(sv);
   986			#line 987 "B.c"
   987	        2792    	ST(0) = sv_newmortal();
   988	        2792    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
   989			
   990			
   991			    }
   992	        2792        XSRETURN(1);
   993			}
   994			
   995			
   996			XS(XS_B_opnumber); /* prototype to pass -Wmissing-prototypes */
   997			XS(XS_B_opnumber)
   998	          26    {
   999	          26        dXSARGS;
  1000	          26        if (items != 1)
  1001	      ######    	Perl_croak(aTHX_ "Usage: B::opnumber(name)");
  1002	          26        PERL_UNUSED_VAR(cv); /* -W */
  1003			    {
  1004	          26    	const char *	name = (const char *)SvPV_nolen(ST(0));
  1005			#line 639 "B.xs"
  1006			{
  1007			 int i; 
  1008			 IV  result = -1;
  1009			 ST(0) = sv_newmortal();
  1010			 if (strncmp(name,"pp_",3) == 0)
  1011			   name += 3;
  1012			 for (i = 0; i < PL_maxo; i++)
  1013			  {
  1014			   if (strcmp(name, PL_op_name[i]) == 0)
  1015			    {
  1016			     result = i;
  1017			     break;
  1018			    }
  1019			  }
  1020			 sv_setiv(ST(0),result);
  1021			}
  1022			#line 1023 "B.c"
  1023			    }
  1024	          26        XSRETURN(1);
  1025			}
  1026			
  1027			
  1028			XS(XS_B_ppname); /* prototype to pass -Wmissing-prototypes */
  1029			XS(XS_B_ppname)
  1030	        9941    {
  1031	        9941        dXSARGS;
  1032	        9941        if (items != 1)
  1033	      ######    	Perl_croak(aTHX_ "Usage: B::ppname(opnum)");
  1034	        9941        PERL_UNUSED_VAR(cv); /* -W */
  1035			    {
  1036	        9941    	int	opnum = (int)SvIV(ST(0));
  1037			#line 660 "B.xs"
  1038				ST(0) = sv_newmortal();
  1039				if (opnum >= 0 && opnum < PL_maxo) {
  1040				    sv_setpvn(ST(0), "pp_", 3);
  1041				    sv_catpv(ST(0), PL_op_name[opnum]);
  1042				}
  1043			#line 1044 "B.c"
  1044			    }
  1045	        9941        XSRETURN(1);
  1046			}
  1047			
  1048			
  1049			XS(XS_B_hash); /* prototype to pass -Wmissing-prototypes */
  1050			XS(XS_B_hash)
  1051	      ######    {
  1052	      ######        dXSARGS;
  1053	      ######        if (items != 1)
  1054	      ######    	Perl_croak(aTHX_ "Usage: B::hash(sv)");
  1055	      ######        PERL_UNUSED_VAR(cv); /* -W */
  1056			    {
  1057	      ######    	SV *	sv = ST(0);
  1058			#line 670 "B.xs"
  1059				STRLEN len;
  1060				U32 hash = 0;
  1061				char hexhash[19]; /* must fit "0xffffffffffffffff" plus trailing \0 */
  1062				const char *s = SvPV(sv, len);
  1063				PERL_HASH(hash, s, len);
  1064				sprintf(hexhash, "0x%"UVxf, (UV)hash);
  1065				ST(0) = sv_2mortal(newSVpv(hexhash, 0));
  1066			#line 1067 "B.c"
  1067			    }
  1068	      ######        XSRETURN(1);
  1069			}
  1070			
  1071			#define cast_I32(foo) (I32)foo
  1072			
  1073			XS(XS_B_cast_I32); /* prototype to pass -Wmissing-prototypes */
  1074			XS(XS_B_cast_I32)
  1075	      ######    {
  1076	      ######        dXSARGS;
  1077	      ######        if (items != 1)
  1078	      ######    	Perl_croak(aTHX_ "Usage: B::cast_I32(i)");
  1079	      ######        PERL_UNUSED_VAR(cv); /* -W */
  1080			    {
  1081	      ######    	IV	i = (IV)SvIV(ST(0));
  1082	      ######    	IV	RETVAL;
  1083	      ######    	dXSTARG;
  1084			
  1085	      ######    	RETVAL = cast_I32(i);
  1086	      ######    	XSprePUSH; PUSHi((IV)RETVAL);
  1087			    }
  1088	      ######        XSRETURN(1);
  1089			}
  1090			
  1091			
  1092			XS(XS_B_minus_c); /* prototype to pass -Wmissing-prototypes */
  1093			XS(XS_B_minus_c)
  1094	          79    {
  1095	          79        dXSARGS;
  1096	          79        if (items != 0)
  1097	      ######    	Perl_croak(aTHX_ "Usage: B::minus_c()");
  1098	          79        PERL_UNUSED_VAR(cv); /* -W */
  1099			    {
  1100			#line 686 "B.xs"
  1101				PL_minus_c = TRUE;
  1102			#line 1103 "B.c"
  1103			    }
  1104	          79        XSRETURN_EMPTY;
  1105			}
  1106			
  1107			
  1108			XS(XS_B_save_BEGINs); /* prototype to pass -Wmissing-prototypes */
  1109			XS(XS_B_save_BEGINs)
  1110	          79    {
  1111	          79        dXSARGS;
  1112	          79        if (items != 0)
  1113	      ######    	Perl_croak(aTHX_ "Usage: B::save_BEGINs()");
  1114	          79        PERL_UNUSED_VAR(cv); /* -W */
  1115			    {
  1116			#line 691 "B.xs"
  1117				PL_savebegin = TRUE;
  1118			#line 1119 "B.c"
  1119			    }
  1120	          79        XSRETURN_EMPTY;
  1121			}
  1122			
  1123			
  1124			XS(XS_B_cstring); /* prototype to pass -Wmissing-prototypes */
  1125			XS(XS_B_cstring)
  1126	        3837    {
  1127	        3837        dXSARGS;
  1128	        3837        if (items != 1)
  1129	      ######    	Perl_croak(aTHX_ "Usage: B::cstring(sv)");
  1130	        3837        PERL_UNUSED_VAR(cv); /* -W */
  1131			    {
  1132	        3837    	SV *	sv = ST(0);
  1133	        3837    	SV *	RETVAL;
  1134			#line 697 "B.xs"
  1135				RETVAL = cstring(aTHX_ sv, 0);
  1136			#line 1137 "B.c"
  1137	        3837    	ST(0) = RETVAL;
  1138	        3837    	sv_2mortal(ST(0));
  1139			    }
  1140	        3837        XSRETURN(1);
  1141			}
  1142			
  1143			
  1144			XS(XS_B_perlstring); /* prototype to pass -Wmissing-prototypes */
  1145			XS(XS_B_perlstring)
  1146	           3    {
  1147	           3        dXSARGS;
  1148	           3        if (items != 1)
  1149	      ######    	Perl_croak(aTHX_ "Usage: B::perlstring(sv)");
  1150	           3        PERL_UNUSED_VAR(cv); /* -W */
  1151			    {
  1152	           3    	SV *	sv = ST(0);
  1153	           3    	SV *	RETVAL;
  1154			#line 705 "B.xs"
  1155				RETVAL = cstring(aTHX_ sv, 1);
  1156			#line 1157 "B.c"
  1157	           3    	ST(0) = RETVAL;
  1158	           3    	sv_2mortal(ST(0));
  1159			    }
  1160	           3        XSRETURN(1);
  1161			}
  1162			
  1163			
  1164			XS(XS_B_cchar); /* prototype to pass -Wmissing-prototypes */
  1165			XS(XS_B_cchar)
  1166	      ######    {
  1167	      ######        dXSARGS;
  1168	      ######        if (items != 1)
  1169	      ######    	Perl_croak(aTHX_ "Usage: B::cchar(sv)");
  1170	      ######        PERL_UNUSED_VAR(cv); /* -W */
  1171			    {
  1172	      ######    	SV *	sv = ST(0);
  1173	      ######    	SV *	RETVAL;
  1174			#line 713 "B.xs"
  1175				RETVAL = cchar(aTHX_ sv);
  1176			#line 1177 "B.c"
  1177	      ######    	ST(0) = RETVAL;
  1178	      ######    	sv_2mortal(ST(0));
  1179			    }
  1180	      ######        XSRETURN(1);
  1181			}
  1182			
  1183			
  1184			XS(XS_B_threadsv_names); /* prototype to pass -Wmissing-prototypes */
  1185			XS(XS_B_threadsv_names)
  1186	           2    {
  1187	           2        dXSARGS;
  1188	           2        if (items != 0)
  1189	      ######    	Perl_croak(aTHX_ "Usage: B::threadsv_names()");
  1190	           2        PERL_UNUSED_VAR(cv); /* -W */
  1191	           2        PERL_UNUSED_VAR(ax); /* -Wall */
  1192	           2        SP -= items;
  1193			    {
  1194			#line 720 "B.xs"
  1195			#if PERL_VERSION <= 8
  1196			# ifdef USE_5005THREADS
  1197				int i;
  1198				const STRLEN len = strlen(PL_threadsv_names);
  1199			
  1200				EXTEND(sp, len);
  1201				for (i = 0; i < len; i++)
  1202				    PUSHs(sv_2mortal(newSVpvn(&PL_threadsv_names[i], 1)));
  1203			# endif
  1204			#endif
  1205			#line 1206 "B.c"
  1206	           2    	PUTBACK;
  1207				return;
  1208			    }
  1209			}
  1210			
  1211			#define OP_next(o)	o->op_next
  1212			#define OP_sibling(o)	o->op_sibling
  1213			#define OP_desc(o)	(char *)PL_op_desc[o->op_type]
  1214			#define OP_targ(o)	o->op_targ
  1215			#define OP_type(o)	o->op_type
  1216			#if PERL_VERSION >= 9
  1217			#  define OP_opt(o)	o->op_opt
  1218			#  define OP_static(o)	o->op_static
  1219			#else
  1220			#  define OP_seq(o)	o->op_seq
  1221			#endif
  1222			#define OP_flags(o)	o->op_flags
  1223			#define OP_private(o)	o->op_private
  1224			#define OP_spare(o)	o->op_spare
  1225			
  1226			XS(XS_B__OP_size); /* prototype to pass -Wmissing-prototypes */
  1227			XS(XS_B__OP_size)
  1228	         315    {
  1229	         315        dXSARGS;
  1230	         315        if (items != 1)
  1231	      ######    	Perl_croak(aTHX_ "Usage: B::OP::size(o)");
  1232	         315        PERL_UNUSED_VAR(cv); /* -W */
  1233			    {
  1234	         315    	B__OP	o;
  1235	         315    	size_t	RETVAL;
  1236	         315    	dXSTARG;
  1237			
  1238	         315    	if (SvROK(ST(0))) {
  1239	         315    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1240	         315    	    o = INT2PTR(B__OP,tmp);
  1241				}
  1242				else
  1243	      ######    	    croak("o is not a reference");
  1244			#line 752 "B.xs"
  1245				RETVAL = opsizes[cc_opclass(aTHX_ o)];
  1246			#line 1247 "B.c"
  1247	         315    	XSprePUSH; PUSHu((UV)RETVAL);
  1248			    }
  1249	         315        XSRETURN(1);
  1250			}
  1251			
  1252			
  1253			XS(XS_B__OP_next); /* prototype to pass -Wmissing-prototypes */
  1254			XS(XS_B__OP_next)
  1255	      126712    {
  1256	      126712        dXSARGS;
  1257	      126712        if (items != 1)
  1258	      ######    	Perl_croak(aTHX_ "Usage: B::OP::next(o)");
  1259	      126712        PERL_UNUSED_VAR(cv); /* -W */
  1260			    {
  1261	      126712    	B__OP	o;
  1262	      126712    	B__OP	RETVAL;
  1263			
  1264	      126712    	if (SvROK(ST(0))) {
  1265	      126712    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1266	      126712    	    o = INT2PTR(B__OP,tmp);
  1267				}
  1268				else
  1269	      ######    	    croak("o is not a reference");
  1270			
  1271	      126712    	RETVAL = OP_next(o);
  1272	      126712    	ST(0) = sv_newmortal();
  1273	      126712    	sv_setiv(newSVrv(ST(0), cc_opclassname(aTHX_ (OP*)RETVAL)), PTR2IV(RETVAL));
  1274			
  1275			    }
  1276	      126712        XSRETURN(1);
  1277			}
  1278			
  1279			
  1280			XS(XS_B__OP_sibling); /* prototype to pass -Wmissing-prototypes */
  1281			XS(XS_B__OP_sibling)
  1282	       71922    {
  1283	       71922        dXSARGS;
  1284	       71922        if (items != 1)
  1285	      ######    	Perl_croak(aTHX_ "Usage: B::OP::sibling(o)");
  1286	       71922        PERL_UNUSED_VAR(cv); /* -W */
  1287			    {
  1288	       71922    	B__OP	o;
  1289	       71922    	B__OP	RETVAL;
  1290			
  1291	       71922    	if (SvROK(ST(0))) {
  1292	       71922    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1293	       71922    	    o = INT2PTR(B__OP,tmp);
  1294				}
  1295				else
  1296	      ######    	    croak("o is not a reference");
  1297			
  1298	       71922    	RETVAL = OP_sibling(o);
  1299	       71922    	ST(0) = sv_newmortal();
  1300	       71922    	sv_setiv(newSVrv(ST(0), cc_opclassname(aTHX_ (OP*)RETVAL)), PTR2IV(RETVAL));
  1301			
  1302			    }
  1303	       71922        XSRETURN(1);
  1304			}
  1305			
  1306			
  1307			XS(XS_B__OP_name); /* prototype to pass -Wmissing-prototypes */
  1308			XS(XS_B__OP_name)
  1309	      117131    {
  1310	      117131        dXSARGS;
  1311	      117131        if (items != 1)
  1312	      ######    	Perl_croak(aTHX_ "Usage: B::OP::name(o)");
  1313	      117131        PERL_UNUSED_VAR(cv); /* -W */
  1314			    {
  1315	      117131    	B__OP	o;
  1316	      117131    	char *	RETVAL;
  1317	      117131    	dXSTARG;
  1318			
  1319	      117131    	if (SvROK(ST(0))) {
  1320	      117131    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1321	      117131    	    o = INT2PTR(B__OP,tmp);
  1322				}
  1323				else
  1324	      ######    	    croak("o is not a reference");
  1325			#line 768 "B.xs"
  1326				RETVAL = (char *)PL_op_name[o->op_type];
  1327			#line 1328 "B.c"
  1328	      117131    	sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG;
  1329			    }
  1330	      117131        XSRETURN(1);
  1331			}
  1332			
  1333			
  1334			XS(XS_B__OP_ppaddr); /* prototype to pass -Wmissing-prototypes */
  1335			XS(XS_B__OP_ppaddr)
  1336	           4    {
  1337	           4        dXSARGS;
  1338	           4        if (items != 1)
  1339	      ######    	Perl_croak(aTHX_ "Usage: B::OP::ppaddr(o)");
  1340	           4        PERL_UNUSED_VAR(cv); /* -W */
  1341			    {
  1342	           4    	B__OP	o;
  1343			#line 777 "B.xs"
  1344				int i;
  1345				SV *sv = sv_newmortal();
  1346			#line 1347 "B.c"
  1347			
  1348	           4    	if (SvROK(ST(0))) {
  1349	           4    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1350	           4    	    o = INT2PTR(B__OP,tmp);
  1351				}
  1352				else
  1353	      ######    	    croak("o is not a reference");
  1354			#line 780 "B.xs"
  1355				sv_setpvn(sv, "PL_ppaddr[OP_", 13);
  1356				sv_catpv(sv, PL_op_name[o->op_type]);
  1357				for (i=13; (STRLEN)i < SvCUR(sv); ++i)
  1358				    SvPVX(sv)[i] = toUPPER(SvPVX(sv)[i]);
  1359				sv_catpv(sv, "]");
  1360				ST(0) = sv;
  1361			#line 1362 "B.c"
  1362			    }
  1363	           4        XSRETURN(1);
  1364			}
  1365			
  1366			
  1367			XS(XS_B__OP_desc); /* prototype to pass -Wmissing-prototypes */
  1368			XS(XS_B__OP_desc)
  1369	           2    {
  1370	           2        dXSARGS;
  1371	           2        if (items != 1)
  1372	      ######    	Perl_croak(aTHX_ "Usage: B::OP::desc(o)");
  1373	           2        PERL_UNUSED_VAR(cv); /* -W */
  1374			    {
  1375	           2    	B__OP	o;
  1376	           2    	char *	RETVAL;
  1377	           2    	dXSTARG;
  1378			
  1379	           2    	if (SvROK(ST(0))) {
  1380	           2    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1381	           2    	    o = INT2PTR(B__OP,tmp);
  1382				}
  1383				else
  1384	      ######    	    croak("o is not a reference");
  1385			
  1386	           2    	RETVAL = OP_desc(o);
  1387	           2    	sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG;
  1388			    }
  1389	           2        XSRETURN(1);
  1390			}
  1391			
  1392			
  1393			XS(XS_B__OP_targ); /* prototype to pass -Wmissing-prototypes */
  1394			XS(XS_B__OP_targ)
  1395	       38942    {
  1396	       38942        dXSARGS;
  1397	       38942        if (items != 1)
  1398	      ######    	Perl_croak(aTHX_ "Usage: B::OP::targ(o)");
  1399	       38942        PERL_UNUSED_VAR(cv); /* -W */
  1400			    {
  1401	       38942    	B__OP	o;
  1402	       38942    	PADOFFSET	RETVAL;
  1403	       38942    	dXSTARG;
  1404			
  1405	       38942    	if (SvROK(ST(0))) {
  1406	       38942    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1407	       38942    	    o = INT2PTR(B__OP,tmp);
  1408				}
  1409				else
  1410	      ######    	    croak("o is not a reference");
  1411			
  1412	       38942    	RETVAL = OP_targ(o);
  1413	       38942    	XSprePUSH; PUSHu((UV)RETVAL);
  1414			    }
  1415	       38942        XSRETURN(1);
  1416			}
  1417			
  1418			
  1419			XS(XS_B__OP_type); /* prototype to pass -Wmissing-prototypes */
  1420			XS(XS_B__OP_type)
  1421	       62626    {
  1422	       62626        dXSARGS;
  1423	       62626        if (items != 1)
  1424	      ######    	Perl_croak(aTHX_ "Usage: B::OP::type(o)");
  1425	       62626        PERL_UNUSED_VAR(cv); /* -W */
  1426			    {
  1427	       62626    	B__OP	o;
  1428	       62626    	U16	RETVAL;
  1429	       62626    	dXSTARG;
  1430			
  1431	       62626    	if (SvROK(ST(0))) {
  1432	       62626    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1433	       62626    	    o = INT2PTR(B__OP,tmp);
  1434				}
  1435				else
  1436	      ######    	    croak("o is not a reference");
  1437			
  1438	       62626    	RETVAL = OP_type(o);
  1439	       62626    	XSprePUSH; PUSHu((UV)RETVAL);
  1440			    }
  1441	       62626        XSRETURN(1);
  1442			}
  1443			
  1444			#if PERL_VERSION >= 9
  1445			#define XSubPPtmpAAAB 1
  1446			
  1447			
  1448			XS(XS_B__OP_opt); /* prototype to pass -Wmissing-prototypes */
  1449			XS(XS_B__OP_opt)
  1450	       31000    {
  1451	       31000        dXSARGS;
  1452	       31000        if (items != 1)
  1453	      ######    	Perl_croak(aTHX_ "Usage: B::OP::opt(o)");
  1454	       31000        PERL_UNUSED_VAR(cv); /* -W */
  1455			    {
  1456	       31000    	B__OP	o;
  1457	       31000    	U8	RETVAL;
  1458	       31000    	dXSTARG;
  1459			
  1460	       31000    	if (SvROK(ST(0))) {
  1461	       31000    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1462	       31000    	    o = INT2PTR(B__OP,tmp);
  1463				}
  1464				else
  1465	      ######    	    croak("o is not a reference");
  1466			
  1467	       31000    	RETVAL = OP_opt(o);
  1468	       31000    	XSprePUSH; PUSHu((UV)RETVAL);
  1469			    }
  1470	       31000        XSRETURN(1);
  1471			}
  1472			
  1473			
  1474			XS(XS_B__OP_static); /* prototype to pass -Wmissing-prototypes */
  1475			XS(XS_B__OP_static)
  1476	       31000    {
  1477	       31000        dXSARGS;
  1478	       31000        if (items != 1)
  1479	      ######    	Perl_croak(aTHX_ "Usage: B::OP::static(o)");
  1480	       31000        PERL_UNUSED_VAR(cv); /* -W */
  1481			    {
  1482	       31000    	B__OP	o;
  1483	       31000    	U8	RETVAL;
  1484	       31000    	dXSTARG;
  1485			
  1486	       31000    	if (SvROK(ST(0))) {
  1487	       31000    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1488	       31000    	    o = INT2PTR(B__OP,tmp);
  1489				}
  1490				else
  1491	      ######    	    croak("o is not a reference");
  1492			
  1493	       31000    	RETVAL = OP_static(o);
  1494	       31000    	XSprePUSH; PUSHu((UV)RETVAL);
  1495			    }
  1496	       31000        XSRETURN(1);
  1497			}
  1498			
  1499			#else
  1500			#define XSubPPtmpAAAC 1
  1501			
  1502			
  1503			XS(XS_B__OP_seq); /* prototype to pass -Wmissing-prototypes */
  1504			XS(XS_B__OP_seq)
  1505			{
  1506			    dXSARGS;
  1507			    if (items != 1)
  1508				Perl_croak(aTHX_ "Usage: B::OP::seq(o)");
  1509			    PERL_UNUSED_VAR(cv); /* -W */
  1510			    {
  1511				B__OP	o;
  1512				U16	RETVAL;
  1513				dXSTARG;
  1514			
  1515				if (SvROK(ST(0))) {
  1516				    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1517				    o = INT2PTR(B__OP,tmp);
  1518				}
  1519				else
  1520				    croak("o is not a reference");
  1521			
  1522				RETVAL = OP_seq(o);
  1523				XSprePUSH; PUSHu((UV)RETVAL);
  1524			    }
  1525			    XSRETURN(1);
  1526			}
  1527			
  1528			#endif
  1529			
  1530			XS(XS_B__OP_flags); /* prototype to pass -Wmissing-prototypes */
  1531			XS(XS_B__OP_flags)
  1532	      105541    {
  1533	      105541        dXSARGS;
  1534	      105541        if (items != 1)
  1535	      ######    	Perl_croak(aTHX_ "Usage: B::OP::flags(o)");
  1536	      105541        PERL_UNUSED_VAR(cv); /* -W */
  1537			    {
  1538	      105541    	B__OP	o;
  1539	      105541    	U8	RETVAL;
  1540	      105541    	dXSTARG;
  1541			
  1542	      105541    	if (SvROK(ST(0))) {
  1543	      105541    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1544	      105541    	    o = INT2PTR(B__OP,tmp);
  1545				}
  1546				else
  1547	      ######    	    croak("o is not a reference");
  1548			
  1549	      105541    	RETVAL = OP_flags(o);
  1550	      105541    	XSprePUSH; PUSHu((UV)RETVAL);
  1551			    }
  1552	      105541        XSRETURN(1);
  1553			}
  1554			
  1555			
  1556			XS(XS_B__OP_private); /* prototype to pass -Wmissing-prototypes */
  1557			XS(XS_B__OP_private)
  1558	       68409    {
  1559	       68409        dXSARGS;
  1560	       68409        if (items != 1)
  1561	      ######    	Perl_croak(aTHX_ "Usage: B::OP::private(o)");
  1562	       68409        PERL_UNUSED_VAR(cv); /* -W */
  1563			    {
  1564	       68409    	B__OP	o;
  1565	       68409    	U8	RETVAL;
  1566	       68409    	dXSTARG;
  1567			
  1568	       68409    	if (SvROK(ST(0))) {
  1569	       68409    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1570	       68409    	    o = INT2PTR(B__OP,tmp);
  1571				}
  1572				else
  1573	      ######    	    croak("o is not a reference");
  1574			
  1575	       68409    	RETVAL = OP_private(o);
  1576	       68409    	XSprePUSH; PUSHu((UV)RETVAL);
  1577			    }
  1578	       68409        XSRETURN(1);
  1579			}
  1580			
  1581			#if PERL_VERSION >= 9
  1582			#define XSubPPtmpAAAD 1
  1583			
  1584			
  1585			XS(XS_B__OP_spare); /* prototype to pass -Wmissing-prototypes */
  1586			XS(XS_B__OP_spare)
  1587	      ######    {
  1588	      ######        dXSARGS;
  1589	      ######        if (items != 1)
  1590	      ######    	Perl_croak(aTHX_ "Usage: B::OP::spare(o)");
  1591	      ######        PERL_UNUSED_VAR(cv); /* -W */
  1592			    {
  1593	      ######    	B__OP	o;
  1594	      ######    	U8	RETVAL;
  1595	      ######    	dXSTARG;
  1596			
  1597	      ######    	if (SvROK(ST(0))) {
  1598	      ######    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1599	      ######    	    o = INT2PTR(B__OP,tmp);
  1600				}
  1601				else
  1602	      ######    	    croak("o is not a reference");
  1603			
  1604	      ######    	RETVAL = OP_spare(o);
  1605	      ######    	XSprePUSH; PUSHu((UV)RETVAL);
  1606			    }
  1607	      ######        XSRETURN(1);
  1608			}
  1609			
  1610			#endif
  1611			
  1612			XS(XS_B__OP_oplist); /* prototype to pass -Wmissing-prototypes */
  1613			XS(XS_B__OP_oplist)
  1614	          26    {
  1615	          26        dXSARGS;
  1616	          26        if (items != 1)
  1617	      ######    	Perl_croak(aTHX_ "Usage: B::OP::oplist(o)");
  1618	          26        PERL_UNUSED_VAR(cv); /* -W */
  1619	          26        PERL_UNUSED_VAR(ax); /* -Wall */
  1620	          26        SP -= items;
  1621			    {
  1622	          26    	B__OP	o;
  1623			
  1624	          26    	if (SvROK(ST(0))) {
  1625	          26    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1626	          26    	    o = INT2PTR(B__OP,tmp);
  1627				}
  1628				else
  1629	      ######    	    croak("o is not a reference");
  1630			#line 837 "B.xs"
  1631				SP = oplist(aTHX_ o, SP);
  1632			#line 1633 "B.c"
  1633	          26    	PUTBACK;
  1634				return;
  1635			    }
  1636			}
  1637			
  1638			#define UNOP_first(o)	o->op_first
  1639			
  1640			XS(XS_B__UNOP_first); /* prototype to pass -Wmissing-prototypes */
  1641			XS(XS_B__UNOP_first)
  1642	       34864    {
  1643	       34864        dXSARGS;
  1644	       34864        if (items != 1)
  1645	      ######    	Perl_croak(aTHX_ "Usage: B::UNOP::first(o)");
  1646	       34864        PERL_UNUSED_VAR(cv); /* -W */
  1647			    {
  1648	       34864    	B__UNOP	o;
  1649	       34864    	B__OP	RETVAL;
  1650			
  1651	       34864    	if (SvROK(ST(0))) {
  1652	       34864    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1653	       34864    	    o = INT2PTR(B__UNOP,tmp);
  1654				}
  1655				else
  1656	      ######    	    croak("o is not a reference");
  1657			
  1658	       34864    	RETVAL = UNOP_first(o);
  1659	       34864    	ST(0) = sv_newmortal();
  1660	       34864    	sv_setiv(newSVrv(ST(0), cc_opclassname(aTHX_ (OP*)RETVAL)), PTR2IV(RETVAL));
  1661			
  1662			    }
  1663	       34864        XSRETURN(1);
  1664			}
  1665			
  1666			#define BINOP_last(o)	o->op_last
  1667			
  1668			XS(XS_B__BINOP_last); /* prototype to pass -Wmissing-prototypes */
  1669			XS(XS_B__BINOP_last)
  1670	        5699    {
  1671	        5699        dXSARGS;
  1672	        5699        if (items != 1)
  1673	      ######    	Perl_croak(aTHX_ "Usage: B::BINOP::last(o)");
  1674	        5699        PERL_UNUSED_VAR(cv); /* -W */
  1675			    {
  1676	        5699    	B__BINOP	o;
  1677	        5699    	B__OP	RETVAL;
  1678			
  1679	        5699    	if (SvROK(ST(0))) {
  1680	        5699    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1681	        5699    	    o = INT2PTR(B__BINOP,tmp);
  1682				}
  1683				else
  1684	      ######    	    croak("o is not a reference");
  1685			
  1686	        5699    	RETVAL = BINOP_last(o);
  1687	        5699    	ST(0) = sv_newmortal();
  1688	        5699    	sv_setiv(newSVrv(ST(0), cc_opclassname(aTHX_ (OP*)RETVAL)), PTR2IV(RETVAL));
  1689			
  1690			    }
  1691	        5699        XSRETURN(1);
  1692			}
  1693			
  1694			#define LOGOP_other(o)	o->op_other
  1695			
  1696			XS(XS_B__LOGOP_other); /* prototype to pass -Wmissing-prototypes */
  1697			XS(XS_B__LOGOP_other)
  1698	        2525    {
  1699	        2525        dXSARGS;
  1700	        2525        if (items != 1)
  1701	      ######    	Perl_croak(aTHX_ "Usage: B::LOGOP::other(o)");
  1702	        2525        PERL_UNUSED_VAR(cv); /* -W */
  1703			    {
  1704	        2525    	B__LOGOP	o;
  1705	        2525    	B__OP	RETVAL;
  1706			
  1707	        2525    	if (SvROK(ST(0))) {
  1708	        2525    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1709	        2525    	    o = INT2PTR(B__LOGOP,tmp);
  1710				}
  1711				else
  1712	      ######    	    croak("o is not a reference");
  1713			
  1714	        2525    	RETVAL = LOGOP_other(o);
  1715	        2525    	ST(0) = sv_newmortal();
  1716	        2525    	sv_setiv(newSVrv(ST(0), cc_opclassname(aTHX_ (OP*)RETVAL)), PTR2IV(RETVAL));
  1717			
  1718			    }
  1719	        2525        XSRETURN(1);
  1720			}
  1721			
  1722			
  1723			XS(XS_B__LISTOP_children); /* prototype to pass -Wmissing-prototypes */
  1724			XS(XS_B__LISTOP_children)
  1725	           1    {
  1726	           1        dXSARGS;
  1727	           1        if (items != 1)
  1728	      ######    	Perl_croak(aTHX_ "Usage: B::LISTOP::children(o)");
  1729	           1        PERL_UNUSED_VAR(cv); /* -W */
  1730			    {
  1731	           1    	B__LISTOP	o;
  1732	           1    	OP *	kid;
  1733	           1    	int	i;
  1734	           1    	U32	RETVAL;
  1735	           1    	dXSTARG;
  1736			
  1737	           1    	if (SvROK(ST(0))) {
  1738	           1    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1739	           1    	    o = INT2PTR(B__LISTOP,tmp);
  1740				}
  1741				else
  1742	      ######    	    croak("o is not a reference");
  1743			#line 871 "B.xs"
  1744				i = 0;
  1745				for (kid = o->op_first; kid; kid = kid->op_sibling)
  1746				    i++;
  1747				RETVAL = i;
  1748			#line 1749 "B.c"
  1749	           1    	XSprePUSH; PUSHu((UV)RETVAL);
  1750			    }
  1751	           1        XSRETURN(1);
  1752			}
  1753			
  1754			#define PMOP_pmreplroot(o)	o->op_pmreplroot
  1755			#define PMOP_pmreplstart(o)	o->op_pmreplstart
  1756			#define PMOP_pmnext(o)		o->op_pmnext
  1757			#define PMOP_pmregexp(o)	PM_GETRE(o)
  1758			#ifdef USE_ITHREADS
  1759			#define PMOP_pmoffset(o)	o->op_pmoffset
  1760			#define PMOP_pmstashpv(o)	o->op_pmstashpv
  1761			#else
  1762			#define PMOP_pmstash(o)		o->op_pmstash
  1763			#endif
  1764			#define PMOP_pmflags(o)		o->op_pmflags
  1765			#define PMOP_pmpermflags(o)	o->op_pmpermflags
  1766			#define PMOP_pmdynflags(o)      o->op_pmdynflags
  1767			
  1768			XS(XS_B__PMOP_pmreplroot); /* prototype to pass -Wmissing-prototypes */
  1769			XS(XS_B__PMOP_pmreplroot)
  1770	         194    {
  1771	         194        dXSARGS;
  1772	         194        if (items != 1)
  1773	      ######    	Perl_croak(aTHX_ "Usage: B::PMOP::pmreplroot(o)");
  1774	         194        PERL_UNUSED_VAR(cv); /* -W */
  1775			    {
  1776	         194    	B__PMOP	o;
  1777	         194    	OP *	root;
  1778			
  1779	         194    	if (SvROK(ST(0))) {
  1780	         194    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1781	         194    	    o = INT2PTR(B__PMOP,tmp);
  1782				}
  1783				else
  1784	      ######    	    croak("o is not a reference");
  1785			#line 899 "B.xs"
  1786				ST(0) = sv_newmortal();
  1787				root = o->op_pmreplroot;
  1788				/* OP_PUSHRE stores an SV* instead of an OP* in op_pmreplroot */
  1789				if (o->op_type == OP_PUSHRE) {
  1790			#ifdef USE_ITHREADS
  1791			            sv_setiv(ST(0), INT2PTR(PADOFFSET,root) );
  1792			#else
  1793				    sv_setiv(newSVrv(ST(0), root ?
  1794						     svclassnames[SvTYPE((SV*)root)] : "B::SV"),
  1795					     PTR2IV(root));
  1796			#endif
  1797				}
  1798				else {
  1799				    sv_setiv(newSVrv(ST(0), cc_opclassname(aTHX_ root)), PTR2IV(root));
  1800				}
  1801			#line 1802 "B.c"
  1802			    }
  1803	         194        XSRETURN(1);
  1804			}
  1805			
  1806			
  1807			XS(XS_B__PMOP_pmreplstart); /* prototype to pass -Wmissing-prototypes */
  1808			XS(XS_B__PMOP_pmreplstart)
  1809	         309    {
  1810	         309        dXSARGS;
  1811	         309        if (items != 1)
  1812	      ######    	Perl_croak(aTHX_ "Usage: B::PMOP::pmreplstart(o)");
  1813	         309        PERL_UNUSED_VAR(cv); /* -W */
  1814			    {
  1815	         309    	B__PMOP	o;
  1816	         309    	B__OP	RETVAL;
  1817			
  1818	         309    	if (SvROK(ST(0))) {
  1819	         309    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1820	         309    	    o = INT2PTR(B__PMOP,tmp);
  1821				}
  1822				else
  1823	      ######    	    croak("o is not a reference");
  1824			
  1825	         309    	RETVAL = PMOP_pmreplstart(o);
  1826	         309    	ST(0) = sv_newmortal();
  1827	         309    	sv_setiv(newSVrv(ST(0), cc_opclassname(aTHX_ (OP*)RETVAL)), PTR2IV(RETVAL));
  1828			
  1829			    }
  1830	         309        XSRETURN(1);
  1831			}
  1832			
  1833			
  1834			XS(XS_B__PMOP_pmnext); /* prototype to pass -Wmissing-prototypes */
  1835			XS(XS_B__PMOP_pmnext)
  1836	      ######    {
  1837	      ######        dXSARGS;
  1838	      ######        if (items != 1)
  1839	      ######    	Perl_croak(aTHX_ "Usage: B::PMOP::pmnext(o)");
  1840	      ######        PERL_UNUSED_VAR(cv); /* -W */
  1841			    {
  1842	      ######    	B__PMOP	o;
  1843	      ######    	B__PMOP	RETVAL;
  1844			
  1845	      ######    	if (SvROK(ST(0))) {
  1846	      ######    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1847	      ######    	    o = INT2PTR(B__PMOP,tmp);
  1848				}
  1849				else
  1850	      ######    	    croak("o is not a reference");
  1851			
  1852	      ######    	RETVAL = PMOP_pmnext(o);
  1853	      ######    	ST(0) = sv_newmortal();
  1854	      ######    	sv_setiv(newSVrv(ST(0), cc_opclassname(aTHX_ (OP*)RETVAL)), PTR2IV(RETVAL));
  1855			
  1856			    }
  1857	      ######        XSRETURN(1);
  1858			}
  1859			
  1860			#ifdef USE_ITHREADS
  1861			#define XSubPPtmpAAAE 1
  1862			
  1863			
  1864			XS(XS_B__PMOP_pmoffset); /* prototype to pass -Wmissing-prototypes */
  1865			XS(XS_B__PMOP_pmoffset)
  1866			{
  1867			    dXSARGS;
  1868			    if (items != 1)
  1869				Perl_croak(aTHX_ "Usage: B::PMOP::pmoffset(o)");
  1870			    PERL_UNUSED_VAR(cv); /* -W */
  1871			    {
  1872				B__PMOP	o;
  1873				IV	RETVAL;
  1874				dXSTARG;
  1875			
  1876				if (SvROK(ST(0))) {
  1877				    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1878				    o = INT2PTR(B__PMOP,tmp);
  1879				}
  1880				else
  1881				    croak("o is not a reference");
  1882			
  1883				RETVAL = PMOP_pmoffset(o);
  1884				XSprePUSH; PUSHi((IV)RETVAL);
  1885			    }
  1886			    XSRETURN(1);
  1887			}
  1888			
  1889			
  1890			XS(XS_B__PMOP_pmstashpv); /* prototype to pass -Wmissing-prototypes */
  1891			XS(XS_B__PMOP_pmstashpv)
  1892			{
  1893			    dXSARGS;
  1894			    if (items != 1)
  1895				Perl_croak(aTHX_ "Usage: B::PMOP::pmstashpv(o)");
  1896			    PERL_UNUSED_VAR(cv); /* -W */
  1897			    {
  1898				B__PMOP	o;
  1899				char *	RETVAL;
  1900				dXSTARG;
  1901			
  1902				if (SvROK(ST(0))) {
  1903				    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1904				    o = INT2PTR(B__PMOP,tmp);
  1905				}
  1906				else
  1907				    croak("o is not a reference");
  1908			
  1909				RETVAL = PMOP_pmstashpv(o);
  1910				sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG;
  1911			    }
  1912			    XSRETURN(1);
  1913			}
  1914			
  1915			#else
  1916			#define XSubPPtmpAAAF 1
  1917			
  1918			
  1919			XS(XS_B__PMOP_pmstash); /* prototype to pass -Wmissing-prototypes */
  1920			XS(XS_B__PMOP_pmstash)
  1921	           5    {
  1922	           5        dXSARGS;
  1923	           5        if (items != 1)
  1924	      ######    	Perl_croak(aTHX_ "Usage: B::PMOP::pmstash(o)");
  1925	           5        PERL_UNUSED_VAR(cv); /* -W */
  1926			    {
  1927	           5    	B__PMOP	o;
  1928	           5    	B__HV	RETVAL;
  1929			
  1930	           5    	if (SvROK(ST(0))) {
  1931	           5    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1932	           5    	    o = INT2PTR(B__PMOP,tmp);
  1933				}
  1934				else
  1935	      ######    	    croak("o is not a reference");
  1936			
  1937	           5    	RETVAL = PMOP_pmstash(o);
  1938	           5    	ST(0) = sv_newmortal();
  1939	           5    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
  1940			
  1941			
  1942			    }
  1943	           5        XSRETURN(1);
  1944			}
  1945			
  1946			#endif
  1947			
  1948			XS(XS_B__PMOP_pmflags); /* prototype to pass -Wmissing-prototypes */
  1949			XS(XS_B__PMOP_pmflags)
  1950	         239    {
  1951	         239        dXSARGS;
  1952	         239        if (items != 1)
  1953	      ######    	Perl_croak(aTHX_ "Usage: B::PMOP::pmflags(o)");
  1954	         239        PERL_UNUSED_VAR(cv); /* -W */
  1955			    {
  1956	         239    	B__PMOP	o;
  1957	         239    	U32	RETVAL;
  1958	         239    	dXSTARG;
  1959			
  1960	         239    	if (SvROK(ST(0))) {
  1961	         239    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1962	         239    	    o = INT2PTR(B__PMOP,tmp);
  1963				}
  1964				else
  1965	      ######    	    croak("o is not a reference");
  1966			
  1967	         239    	RETVAL = PMOP_pmflags(o);
  1968	         239    	XSprePUSH; PUSHu((UV)RETVAL);
  1969			    }
  1970	         239        XSRETURN(1);
  1971			}
  1972			
  1973			
  1974			XS(XS_B__PMOP_pmpermflags); /* prototype to pass -Wmissing-prototypes */
  1975			XS(XS_B__PMOP_pmpermflags)
  1976	           5    {
  1977	           5        dXSARGS;
  1978	           5        if (items != 1)
  1979	      ######    	Perl_croak(aTHX_ "Usage: B::PMOP::pmpermflags(o)");
  1980	           5        PERL_UNUSED_VAR(cv); /* -W */
  1981			    {
  1982	           5    	B__PMOP	o;
  1983	           5    	U32	RETVAL;
  1984	           5    	dXSTARG;
  1985			
  1986	           5    	if (SvROK(ST(0))) {
  1987	           5    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  1988	           5    	    o = INT2PTR(B__PMOP,tmp);
  1989				}
  1990				else
  1991	      ######    	    croak("o is not a reference");
  1992			
  1993	           5    	RETVAL = PMOP_pmpermflags(o);
  1994	           5    	XSprePUSH; PUSHu((UV)RETVAL);
  1995			    }
  1996	           5        XSRETURN(1);
  1997			}
  1998			
  1999			
  2000			XS(XS_B__PMOP_pmdynflags); /* prototype to pass -Wmissing-prototypes */
  2001			XS(XS_B__PMOP_pmdynflags)
  2002	           5    {
  2003	           5        dXSARGS;
  2004	           5        if (items != 1)
  2005	      ######    	Perl_croak(aTHX_ "Usage: B::PMOP::pmdynflags(o)");
  2006	           5        PERL_UNUSED_VAR(cv); /* -W */
  2007			    {
  2008	           5    	B__PMOP	o;
  2009	           5    	U8	RETVAL;
  2010	           5    	dXSTARG;
  2011			
  2012	           5    	if (SvROK(ST(0))) {
  2013	           5    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2014	           5    	    o = INT2PTR(B__PMOP,tmp);
  2015				}
  2016				else
  2017	      ######    	    croak("o is not a reference");
  2018			
  2019	           5    	RETVAL = PMOP_pmdynflags(o);
  2020	           5    	XSprePUSH; PUSHu((UV)RETVAL);
  2021			    }
  2022	           5        XSRETURN(1);
  2023			}
  2024			
  2025			
  2026			XS(XS_B__PMOP_precomp); /* prototype to pass -Wmissing-prototypes */
  2027			XS(XS_B__PMOP_precomp)
  2028	         177    {
  2029	         177        dXSARGS;
  2030	         177        if (items != 1)
  2031	      ######    	Perl_croak(aTHX_ "Usage: B::PMOP::precomp(o)");
  2032	         177        PERL_UNUSED_VAR(cv); /* -W */
  2033			    {
  2034	         177    	B__PMOP	o;
  2035	         177    	REGEXP *	rx;
  2036			
  2037	         177    	if (SvROK(ST(0))) {
  2038	         177    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2039	         177    	    o = INT2PTR(B__PMOP,tmp);
  2040				}
  2041				else
  2042	      ######    	    croak("o is not a reference");
  2043			#line 958 "B.xs"
  2044				ST(0) = sv_newmortal();
  2045				rx = PM_GETRE(o);
  2046				if (rx)
  2047				    sv_setpvn(ST(0), rx->precomp, rx->prelen);
  2048			#line 2049 "B.c"
  2049			    }
  2050	         177        XSRETURN(1);
  2051			}
  2052			
  2053			#define SVOP_sv(o)     cSVOPo->op_sv
  2054			#define SVOP_gv(o)     ((GV*)cSVOPo->op_sv)
  2055			
  2056			XS(XS_B__SVOP_sv); /* prototype to pass -Wmissing-prototypes */
  2057			XS(XS_B__SVOP_sv)
  2058	       11841    {
  2059	       11841        dXSARGS;
  2060	       11841        if (items != 1)
  2061	      ######    	Perl_croak(aTHX_ "Usage: B::SVOP::sv(o)");
  2062	       11841        PERL_UNUSED_VAR(cv); /* -W */
  2063			    {
  2064	       11841    	B__SVOP	o;
  2065	       11841    	B__SV	RETVAL;
  2066			
  2067	       11841    	if (SvROK(ST(0))) {
  2068	       11841    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2069	       11841    	    o = INT2PTR(B__SVOP,tmp);
  2070				}
  2071				else
  2072	      ######    	    croak("o is not a reference");
  2073			
  2074	       11841    	RETVAL = SVOP_sv(o);
  2075	       11841    	ST(0) = sv_newmortal();
  2076	       11841    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
  2077			
  2078			
  2079			    }
  2080	       11841        XSRETURN(1);
  2081			}
  2082			
  2083			
  2084			XS(XS_B__SVOP_gv); /* prototype to pass -Wmissing-prototypes */
  2085			XS(XS_B__SVOP_gv)
  2086	         603    {
  2087	         603        dXSARGS;
  2088	         603        if (items != 1)
  2089	      ######    	Perl_croak(aTHX_ "Usage: B::SVOP::gv(o)");
  2090	         603        PERL_UNUSED_VAR(cv); /* -W */
  2091			    {
  2092	         603    	B__SVOP	o;
  2093	         603    	B__GV	RETVAL;
  2094			
  2095	         603    	if (SvROK(ST(0))) {
  2096	         603    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2097	         603    	    o = INT2PTR(B__SVOP,tmp);
  2098				}
  2099				else
  2100	      ######    	    croak("o is not a reference");
  2101			
  2102	         603    	RETVAL = SVOP_gv(o);
  2103	         603    	ST(0) = sv_newmortal();
  2104	         603    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
  2105			
  2106			
  2107			    }
  2108	         603        XSRETURN(1);
  2109			}
  2110			
  2111			#define PADOP_padix(o)	o->op_padix
  2112			#define PADOP_sv(o)	(o->op_padix ? PAD_SVl(o->op_padix) : Nullsv)
  2113			#define PADOP_gv(o)	((o->op_padix \
  2114						  && SvTYPE(PAD_SVl(o->op_padix)) == SVt_PVGV) \
  2115						 ? (GV*)PAD_SVl(o->op_padix) : Nullgv)
  2116			
  2117			XS(XS_B__PADOP_padix); /* prototype to pass -Wmissing-prototypes */
  2118			XS(XS_B__PADOP_padix)
  2119	      ######    {
  2120	      ######        dXSARGS;
  2121	      ######        if (items != 1)
  2122	      ######    	Perl_croak(aTHX_ "Usage: B::PADOP::padix(o)");
  2123	      ######        PERL_UNUSED_VAR(cv); /* -W */
  2124			    {
  2125	      ######    	B__PADOP	o;
  2126	      ######    	PADOFFSET	RETVAL;
  2127	      ######    	dXSTARG;
  2128			
  2129	      ######    	if (SvROK(ST(0))) {
  2130	      ######    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2131	      ######    	    o = INT2PTR(B__PADOP,tmp);
  2132				}
  2133				else
  2134	      ######    	    croak("o is not a reference");
  2135			
  2136	      ######    	RETVAL = PADOP_padix(o);
  2137	      ######    	XSprePUSH; PUSHu((UV)RETVAL);
  2138			    }
  2139	      ######        XSRETURN(1);
  2140			}
  2141			
  2142			
  2143			XS(XS_B__PADOP_sv); /* prototype to pass -Wmissing-prototypes */
  2144			XS(XS_B__PADOP_sv)
  2145	      ######    {
  2146	      ######        dXSARGS;
  2147	      ######        if (items != 1)
  2148	      ######    	Perl_croak(aTHX_ "Usage: B::PADOP::sv(o)");
  2149	      ######        PERL_UNUSED_VAR(cv); /* -W */
  2150			    {
  2151	      ######    	B__PADOP	o;
  2152	      ######    	B__SV	RETVAL;
  2153			
  2154	      ######    	if (SvROK(ST(0))) {
  2155	      ######    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2156	      ######    	    o = INT2PTR(B__PADOP,tmp);
  2157				}
  2158				else
  2159	      ######    	    croak("o is not a reference");
  2160			
  2161	      ######    	RETVAL = PADOP_sv(o);
  2162	      ######    	ST(0) = sv_newmortal();
  2163	      ######    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
  2164			
  2165			
  2166			    }
  2167	      ######        XSRETURN(1);
  2168			}
  2169			
  2170			
  2171			XS(XS_B__PADOP_gv); /* prototype to pass -Wmissing-prototypes */
  2172			XS(XS_B__PADOP_gv)
  2173	      ######    {
  2174	      ######        dXSARGS;
  2175	      ######        if (items != 1)
  2176	      ######    	Perl_croak(aTHX_ "Usage: B::PADOP::gv(o)");
  2177	      ######        PERL_UNUSED_VAR(cv); /* -W */
  2178			    {
  2179	      ######    	B__PADOP	o;
  2180	      ######    	B__GV	RETVAL;
  2181			
  2182	      ######    	if (SvROK(ST(0))) {
  2183	      ######    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2184	      ######    	    o = INT2PTR(B__PADOP,tmp);
  2185				}
  2186				else
  2187	      ######    	    croak("o is not a reference");
  2188			
  2189	      ######    	RETVAL = PADOP_gv(o);
  2190	      ######    	ST(0) = sv_newmortal();
  2191	      ######    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
  2192			
  2193			
  2194			    }
  2195	      ######        XSRETURN(1);
  2196			}
  2197			
  2198			
  2199			XS(XS_B__PVOP_pv); /* prototype to pass -Wmissing-prototypes */
  2200			XS(XS_B__PVOP_pv)
  2201	           2    {
  2202	           2        dXSARGS;
  2203	           2        if (items != 1)
  2204	      ######    	Perl_croak(aTHX_ "Usage: B::PVOP::pv(o)");
  2205	           2        PERL_UNUSED_VAR(cv); /* -W */
  2206			    {
  2207	           2    	B__PVOP	o;
  2208			
  2209	           2    	if (SvROK(ST(0))) {
  2210	           2    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2211	           2    	    o = INT2PTR(B__PVOP,tmp);
  2212				}
  2213				else
  2214	      ######    	    croak("o is not a reference");
  2215			#line 1002 "B.xs"
  2216				/*
  2217				 * OP_TRANS uses op_pv to point to a table of 256 or >=258 shorts
  2218				 * whereas other PVOPs point to a null terminated string.
  2219				 */
  2220				if (o->op_type == OP_TRANS &&
  2221					(o->op_private & OPpTRANS_COMPLEMENT) &&
  2222					!(o->op_private & OPpTRANS_DELETE))
  2223				{
  2224				    const short* const tbl = (short*)o->op_pv;
  2225				    const short entries = 257 + tbl[256];
  2226				    ST(0) = sv_2mortal(newSVpv(o->op_pv, entries * sizeof(short)));
  2227				}
  2228				else if (o->op_type == OP_TRANS) {
  2229				    ST(0) = sv_2mortal(newSVpv(o->op_pv, 256 * sizeof(short)));
  2230				}
  2231				else
  2232				    ST(0) = sv_2mortal(newSVpv(o->op_pv, 0));
  2233			#line 2234 "B.c"
  2234			    }
  2235	           2        XSRETURN(1);
  2236			}
  2237			
  2238			#define LOOP_redoop(o)	o->op_redoop
  2239			#define LOOP_nextop(o)	o->op_nextop
  2240			#define LOOP_lastop(o)	o->op_lastop
  2241			
  2242			XS(XS_B__LOOP_redoop); /* prototype to pass -Wmissing-prototypes */
  2243			XS(XS_B__LOOP_redoop)
  2244	         201    {
  2245	         201        dXSARGS;
  2246	         201        if (items != 1)
  2247	      ######    	Perl_croak(aTHX_ "Usage: B::LOOP::redoop(o)");
  2248	         201        PERL_UNUSED_VAR(cv); /* -W */
  2249			    {
  2250	         201    	B__LOOP	o;
  2251	         201    	B__OP	RETVAL;
  2252			
  2253	         201    	if (SvROK(ST(0))) {
  2254	         201    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2255	         201    	    o = INT2PTR(B__LOOP,tmp);
  2256				}
  2257				else
  2258	      ######    	    croak("o is not a reference");
  2259			
  2260	         201    	RETVAL = LOOP_redoop(o);
  2261	         201    	ST(0) = sv_newmortal();
  2262	         201    	sv_setiv(newSVrv(ST(0), cc_opclassname(aTHX_ (OP*)RETVAL)), PTR2IV(RETVAL));
  2263			
  2264			    }
  2265	         201        XSRETURN(1);
  2266			}
  2267			
  2268			
  2269			XS(XS_B__LOOP_nextop); /* prototype to pass -Wmissing-prototypes */
  2270			XS(XS_B__LOOP_nextop)
  2271	         219    {
  2272	         219        dXSARGS;
  2273	         219        if (items != 1)
  2274	      ######    	Perl_croak(aTHX_ "Usage: B::LOOP::nextop(o)");
  2275	         219        PERL_UNUSED_VAR(cv); /* -W */
  2276			    {
  2277	         219    	B__LOOP	o;
  2278	         219    	B__OP	RETVAL;
  2279			
  2280	         219    	if (SvROK(ST(0))) {
  2281	         219    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2282	         219    	    o = INT2PTR(B__LOOP,tmp);
  2283				}
  2284				else
  2285	      ######    	    croak("o is not a reference");
  2286			
  2287	         219    	RETVAL = LOOP_nextop(o);
  2288	         219    	ST(0) = sv_newmortal();
  2289	         219    	sv_setiv(newSVrv(ST(0), cc_opclassname(aTHX_ (OP*)RETVAL)), PTR2IV(RETVAL));
  2290			
  2291			    }
  2292	         219        XSRETURN(1);
  2293			}
  2294			
  2295			
  2296			XS(XS_B__LOOP_lastop); /* prototype to pass -Wmissing-prototypes */
  2297			XS(XS_B__LOOP_lastop)
  2298	         201    {
  2299	         201        dXSARGS;
  2300	         201        if (items != 1)
  2301	      ######    	Perl_croak(aTHX_ "Usage: B::LOOP::lastop(o)");
  2302	         201        PERL_UNUSED_VAR(cv); /* -W */
  2303			    {
  2304	         201    	B__LOOP	o;
  2305	         201    	B__OP	RETVAL;
  2306			
  2307	         201    	if (SvROK(ST(0))) {
  2308	         201    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2309	         201    	    o = INT2PTR(B__LOOP,tmp);
  2310				}
  2311				else
  2312	      ######    	    croak("o is not a reference");
  2313			
  2314	         201    	RETVAL = LOOP_lastop(o);
  2315	         201    	ST(0) = sv_newmortal();
  2316	         201    	sv_setiv(newSVrv(ST(0), cc_opclassname(aTHX_ (OP*)RETVAL)), PTR2IV(RETVAL));
  2317			
  2318			    }
  2319	         201        XSRETURN(1);
  2320			}
  2321			
  2322			#define COP_label(o)	o->cop_label
  2323			#define COP_stashpv(o)	CopSTASHPV(o)
  2324			#define COP_stash(o)	CopSTASH(o)
  2325			#define COP_file(o)	CopFILE(o)
  2326			#define COP_filegv(o)	CopFILEGV(o)
  2327			#define COP_cop_seq(o)	o->cop_seq
  2328			#define COP_arybase(o)	o->cop_arybase
  2329			#define COP_line(o)	CopLINE(o)
  2330			#define COP_warnings(o)	o->cop_warnings
  2331			#define COP_io(o)	o->cop_io
  2332			
  2333			XS(XS_B__COP_label); /* prototype to pass -Wmissing-prototypes */
  2334			XS(XS_B__COP_label)
  2335	        2812    {
  2336	        2812        dXSARGS;
  2337	        2812        if (items != 1)
  2338	      ######    	Perl_croak(aTHX_ "Usage: B::COP::label(o)");
  2339	        2812        PERL_UNUSED_VAR(cv); /* -W */
  2340			    {
  2341	        2812    	B__COP	o;
  2342	        2812    	char *	RETVAL;
  2343	        2812    	dXSTARG;
  2344			
  2345	        2812    	if (SvROK(ST(0))) {
  2346	        2812    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2347	        2812    	    o = INT2PTR(B__COP,tmp);
  2348				}
  2349				else
  2350	      ######    	    croak("o is not a reference");
  2351			
  2352	        2812    	RETVAL = COP_label(o);
  2353	        2812    	sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG;
  2354			    }
  2355	        2812        XSRETURN(1);
  2356			}
  2357			
  2358			
  2359			XS(XS_B__COP_stashpv); /* prototype to pass -Wmissing-prototypes */
  2360			XS(XS_B__COP_stashpv)
  2361	         292    {
  2362	         292        dXSARGS;
  2363	         292        if (items != 1)
  2364	      ######    	Perl_croak(aTHX_ "Usage: B::COP::stashpv(o)");
  2365	         292        PERL_UNUSED_VAR(cv); /* -W */
  2366			    {
  2367	         292    	B__COP	o;
  2368	         292    	char *	RETVAL;
  2369	         292    	dXSTARG;
  2370			
  2371	         292    	if (SvROK(ST(0))) {
  2372	         292    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2373	         292    	    o = INT2PTR(B__COP,tmp);
  2374				}
  2375				else
  2376	      ######    	    croak("o is not a reference");
  2377			
  2378	         292    	RETVAL = COP_stashpv(o);
  2379	         292    	sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG;
  2380			    }
  2381	         292        XSRETURN(1);
  2382			}
  2383			
  2384			
  2385			XS(XS_B__COP_stash); /* prototype to pass -Wmissing-prototypes */
  2386			XS(XS_B__COP_stash)
  2387	        2537    {
  2388	        2537        dXSARGS;
  2389	        2537        if (items != 1)
  2390	      ######    	Perl_croak(aTHX_ "Usage: B::COP::stash(o)");
  2391	        2537        PERL_UNUSED_VAR(cv); /* -W */
  2392			    {
  2393	        2537    	B__COP	o;
  2394	        2537    	B__HV	RETVAL;
  2395			
  2396	        2537    	if (SvROK(ST(0))) {
  2397	        2537    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2398	        2537    	    o = INT2PTR(B__COP,tmp);
  2399				}
  2400				else
  2401	      ######    	    croak("o is not a reference");
  2402			
  2403	        2537    	RETVAL = COP_stash(o);
  2404	        2537    	ST(0) = sv_newmortal();
  2405	        2537    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
  2406			
  2407			
  2408			    }
  2409	        2537        XSRETURN(1);
  2410			}
  2411			
  2412			
  2413			XS(XS_B__COP_file); /* prototype to pass -Wmissing-prototypes */
  2414			XS(XS_B__COP_file)
  2415	        3186    {
  2416	        3186        dXSARGS;
  2417	        3186        if (items != 1)
  2418	      ######    	Perl_croak(aTHX_ "Usage: B::COP::file(o)");
  2419	        3186        PERL_UNUSED_VAR(cv); /* -W */
  2420			    {
  2421	        3186    	B__COP	o;
  2422	        3186    	char *	RETVAL;
  2423	        3186    	dXSTARG;
  2424			
  2425	        3186    	if (SvROK(ST(0))) {
  2426	        3186    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2427	        3186    	    o = INT2PTR(B__COP,tmp);
  2428				}
  2429				else
  2430	      ######    	    croak("o is not a reference");
  2431			
  2432	        3186    	RETVAL = COP_file(o);
  2433	        3186    	sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG;
  2434			    }
  2435	        3186        XSRETURN(1);
  2436			}
  2437			
  2438			
  2439			XS(XS_B__COP_filegv); /* prototype to pass -Wmissing-prototypes */
  2440			XS(XS_B__COP_filegv)
  2441	          48    {
  2442	          48        dXSARGS;
  2443	          48        if (items != 1)
  2444	      ######    	Perl_croak(aTHX_ "Usage: B::COP::filegv(o)");
  2445	          48        PERL_UNUSED_VAR(cv); /* -W */
  2446			    {
  2447	          48    	B__COP	o;
  2448	          48    	B__GV	RETVAL;
  2449			
  2450	          48    	if (SvROK(ST(0))) {
  2451	          48    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2452	          48    	    o = INT2PTR(B__COP,tmp);
  2453				}
  2454				else
  2455	      ######    	    croak("o is not a reference");
  2456			
  2457	          48    	RETVAL = COP_filegv(o);
  2458	          48    	ST(0) = sv_newmortal();
  2459	          48    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
  2460			
  2461			
  2462			    }
  2463	          48        XSRETURN(1);
  2464			}
  2465			
  2466			
  2467			XS(XS_B__COP_cop_seq); /* prototype to pass -Wmissing-prototypes */
  2468			XS(XS_B__COP_cop_seq)
  2469	        3627    {
  2470	        3627        dXSARGS;
  2471	        3627        if (items != 1)
  2472	      ######    	Perl_croak(aTHX_ "Usage: B::COP::cop_seq(o)");
  2473	        3627        PERL_UNUSED_VAR(cv); /* -W */
  2474			    {
  2475	        3627    	B__COP	o;
  2476	        3627    	U32	RETVAL;
  2477	        3627    	dXSTARG;
  2478			
  2479	        3627    	if (SvROK(ST(0))) {
  2480	        3627    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2481	        3627    	    o = INT2PTR(B__COP,tmp);
  2482				}
  2483				else
  2484	      ######    	    croak("o is not a reference");
  2485			
  2486	        3627    	RETVAL = COP_cop_seq(o);
  2487	        3627    	XSprePUSH; PUSHu((UV)RETVAL);
  2488			    }
  2489	        3627        XSRETURN(1);
  2490			}
  2491			
  2492			
  2493			XS(XS_B__COP_arybase); /* prototype to pass -Wmissing-prototypes */
  2494			XS(XS_B__COP_arybase)
  2495	        2811    {
  2496	        2811        dXSARGS;
  2497	        2811        if (items != 1)
  2498	      ######    	Perl_croak(aTHX_ "Usage: B::COP::arybase(o)");
  2499	        2811        PERL_UNUSED_VAR(cv); /* -W */
  2500			    {
  2501	        2811    	B__COP	o;
  2502	        2811    	I32	RETVAL;
  2503	        2811    	dXSTARG;
  2504			
  2505	        2811    	if (SvROK(ST(0))) {
  2506	        2811    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2507	        2811    	    o = INT2PTR(B__COP,tmp);
  2508				}
  2509				else
  2510	      ######    	    croak("o is not a reference");
  2511			
  2512	        2811    	RETVAL = COP_arybase(o);
  2513	        2811    	XSprePUSH; PUSHi((IV)RETVAL);
  2514			    }
  2515	        2811        XSRETURN(1);
  2516			}
  2517			
  2518			
  2519			XS(XS_B__COP_line); /* prototype to pass -Wmissing-prototypes */
  2520			XS(XS_B__COP_line)
  2521	        3234    {
  2522	        3234        dXSARGS;
  2523	        3234        if (items != 1)
  2524	      ######    	Perl_croak(aTHX_ "Usage: B::COP::line(o)");
  2525	        3234        PERL_UNUSED_VAR(cv); /* -W */
  2526			    {
  2527	        3234    	B__COP	o;
  2528	        3234    	U32	RETVAL;
  2529	        3234    	dXSTARG;
  2530			
  2531	        3234    	if (SvROK(ST(0))) {
  2532	        3234    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2533	        3234    	    o = INT2PTR(B__COP,tmp);
  2534				}
  2535				else
  2536	      ######    	    croak("o is not a reference");
  2537			
  2538	        3234    	RETVAL = COP_line(o);
  2539	        3234    	XSprePUSH; PUSHu((UV)RETVAL);
  2540			    }
  2541	        3234        XSRETURN(1);
  2542			}
  2543			
  2544			
  2545			XS(XS_B__COP_warnings); /* prototype to pass -Wmissing-prototypes */
  2546			XS(XS_B__COP_warnings)
  2547	         340    {
  2548	         340        dXSARGS;
  2549	         340        if (items != 1)
  2550	      ######    	Perl_croak(aTHX_ "Usage: B::COP::warnings(o)");
  2551	         340        PERL_UNUSED_VAR(cv); /* -W */
  2552			    {
  2553	         340    	B__COP	o;
  2554	         340    	B__SV	RETVAL;
  2555			
  2556	         340    	if (SvROK(ST(0))) {
  2557	         340    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2558	         340    	    o = INT2PTR(B__COP,tmp);
  2559				}
  2560				else
  2561	      ######    	    croak("o is not a reference");
  2562			
  2563	         340    	RETVAL = COP_warnings(o);
  2564	         340    	ST(0) = sv_newmortal();
  2565	         340    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
  2566			
  2567			
  2568			    }
  2569	         340        XSRETURN(1);
  2570			}
  2571			
  2572			
  2573			XS(XS_B__COP_io); /* prototype to pass -Wmissing-prototypes */
  2574			XS(XS_B__COP_io)
  2575	          49    {
  2576	          49        dXSARGS;
  2577	          49        if (items != 1)
  2578	      ######    	Perl_croak(aTHX_ "Usage: B::COP::io(o)");
  2579	          49        PERL_UNUSED_VAR(cv); /* -W */
  2580			    {
  2581	          49    	B__COP	o;
  2582	          49    	B__SV	RETVAL;
  2583			
  2584	          49    	if (SvROK(ST(0))) {
  2585	          49    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2586	          49    	    o = INT2PTR(B__COP,tmp);
  2587				}
  2588				else
  2589	      ######    	    croak("o is not a reference");
  2590			
  2591	          49    	RETVAL = COP_io(o);
  2592	          49    	ST(0) = sv_newmortal();
  2593	          49    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
  2594			
  2595			
  2596			    }
  2597	          49        XSRETURN(1);
  2598			}
  2599			
  2600			
  2601			XS(XS_B__SV_SvTYPE); /* prototype to pass -Wmissing-prototypes */
  2602			XS(XS_B__SV_SvTYPE)
  2603	       16999    {
  2604	       16999        dXSARGS;
  2605	       16999        if (items != 1)
  2606	      ######    	Perl_croak(aTHX_ "Usage: B::SV::SvTYPE(sv)");
  2607	       16999        PERL_UNUSED_VAR(cv); /* -W */
  2608			    {
  2609	       16999    	B__SV	sv;
  2610	       16999    	U32	RETVAL;
  2611	       16999    	dXSTARG;
  2612			
  2613	       16999    	if (SvROK(ST(0))) {
  2614	       16999    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2615	       16999    	    sv = INT2PTR(B__SV,tmp);
  2616				}
  2617				else
  2618	      ######    	    croak("sv is not a reference");
  2619			
  2620	       16999    	RETVAL = SvTYPE(sv);
  2621	       16999    	XSprePUSH; PUSHu((UV)RETVAL);
  2622			    }
  2623	       16999        XSRETURN(1);
  2624			}
  2625			
  2626			#define object_2svref(sv)	sv
  2627			#define SVREF SV *
  2628			
  2629			XS(XS_B__SV_object_2svref); /* prototype to pass -Wmissing-prototypes */
  2630			XS(XS_B__SV_object_2svref)
  2631	           5    {
  2632	           5        dXSARGS;
  2633	           5        if (items != 1)
  2634	      ######    	Perl_croak(aTHX_ "Usage: B::SV::object_2svref(sv)");
  2635	           5        PERL_UNUSED_VAR(cv); /* -W */
  2636			    {
  2637	           5    	B__SV	sv;
  2638	           5    	SVREF	RETVAL;
  2639			
  2640	           5    	if (SvROK(ST(0))) {
  2641	           5    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2642	           5    	    sv = INT2PTR(B__SV,tmp);
  2643				}
  2644				else
  2645	      ######    	    croak("sv is not a reference");
  2646			
  2647	           5    	RETVAL = object_2svref(sv);
  2648	           5    	ST(0) = newRV((SV*)RETVAL);
  2649	           5    	sv_2mortal(ST(0));
  2650			    }
  2651	           5        XSRETURN(1);
  2652			}
  2653			
  2654			
  2655			XS(XS_B__SV_REFCNT); /* prototype to pass -Wmissing-prototypes */
  2656			XS(XS_B__SV_REFCNT)
  2657	         320    {
  2658	         320        dXSARGS;
  2659	         320        if (items != 1)
  2660	      ######    	Perl_croak(aTHX_ "Usage: B::SV::REFCNT(sv)");
  2661	         320        PERL_UNUSED_VAR(cv); /* -W */
  2662			    {
  2663	         320    	B__SV	sv;
  2664	         320    	U32	RETVAL;
  2665	         320    	dXSTARG;
  2666			
  2667	         320    	if (SvROK(ST(0))) {
  2668	         320    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2669	         320    	    sv = INT2PTR(B__SV,tmp);
  2670				}
  2671				else
  2672	      ######    	    croak("sv is not a reference");
  2673			
  2674	         320    	RETVAL = SvREFCNT(sv);
  2675	         320    	XSprePUSH; PUSHu((UV)RETVAL);
  2676			    }
  2677	         320        XSRETURN(1);
  2678			}
  2679			
  2680			
  2681			XS(XS_B__SV_FLAGS); /* prototype to pass -Wmissing-prototypes */
  2682			XS(XS_B__SV_FLAGS)
  2683	       19495    {
  2684	       19495        dXSARGS;
  2685	       19495        if (items != 1)
  2686	      ######    	Perl_croak(aTHX_ "Usage: B::SV::FLAGS(sv)");
  2687	       19495        PERL_UNUSED_VAR(cv); /* -W */
  2688			    {
  2689	       19495    	B__SV	sv;
  2690	       19495    	U32	RETVAL;
  2691	       19495    	dXSTARG;
  2692			
  2693	       19495    	if (SvROK(ST(0))) {
  2694	       19495    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2695	       19495    	    sv = INT2PTR(B__SV,tmp);
  2696				}
  2697				else
  2698	      ######    	    croak("sv is not a reference");
  2699			
  2700	       19495    	RETVAL = SvFLAGS(sv);
  2701	       19495    	XSprePUSH; PUSHu((UV)RETVAL);
  2702			    }
  2703	       19495        XSRETURN(1);
  2704			}
  2705			
  2706			
  2707			XS(XS_B__SV_POK); /* prototype to pass -Wmissing-prototypes */
  2708			XS(XS_B__SV_POK)
  2709	          43    {
  2710	          43        dXSARGS;
  2711	          43        if (items != 1)
  2712	      ######    	Perl_croak(aTHX_ "Usage: B::SV::POK(sv)");
  2713	          43        PERL_UNUSED_VAR(cv); /* -W */
  2714			    {
  2715	          43    	B__SV	sv;
  2716	          43    	U32	RETVAL;
  2717	          43    	dXSTARG;
  2718			
  2719	          43    	if (SvROK(ST(0))) {
  2720	          43    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2721	          43    	    sv = INT2PTR(B__SV,tmp);
  2722				}
  2723				else
  2724	      ######    	    croak("sv is not a reference");
  2725			
  2726	          43    	RETVAL = SvPOK(sv);
  2727	          43    	XSprePUSH; PUSHu((UV)RETVAL);
  2728			    }
  2729	          43        XSRETURN(1);
  2730			}
  2731			
  2732			
  2733			XS(XS_B__SV_ROK); /* prototype to pass -Wmissing-prototypes */
  2734			XS(XS_B__SV_ROK)
  2735	          30    {
  2736	          30        dXSARGS;
  2737	          30        if (items != 1)
  2738	      ######    	Perl_croak(aTHX_ "Usage: B::SV::ROK(sv)");
  2739	          30        PERL_UNUSED_VAR(cv); /* -W */
  2740			    {
  2741	          30    	B__SV	sv;
  2742	          30    	U32	RETVAL;
  2743	          30    	dXSTARG;
  2744			
  2745	          30    	if (SvROK(ST(0))) {
  2746	          30    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2747	          30    	    sv = INT2PTR(B__SV,tmp);
  2748				}
  2749				else
  2750	      ######    	    croak("sv is not a reference");
  2751			
  2752	          30    	RETVAL = SvROK(sv);
  2753	          30    	XSprePUSH; PUSHu((UV)RETVAL);
  2754			    }
  2755	          30        XSRETURN(1);
  2756			}
  2757			
  2758			
  2759			XS(XS_B__SV_MAGICAL); /* prototype to pass -Wmissing-prototypes */
  2760			XS(XS_B__SV_MAGICAL)
  2761	         115    {
  2762	         115        dXSARGS;
  2763	         115        if (items != 1)
  2764	      ######    	Perl_croak(aTHX_ "Usage: B::SV::MAGICAL(sv)");
  2765	         115        PERL_UNUSED_VAR(cv); /* -W */
  2766			    {
  2767	         115    	B__SV	sv;
  2768	         115    	U32	RETVAL;
  2769	         115    	dXSTARG;
  2770			
  2771	         115    	if (SvROK(ST(0))) {
  2772	         115    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2773	         115    	    sv = INT2PTR(B__SV,tmp);
  2774				}
  2775				else
  2776	      ######    	    croak("sv is not a reference");
  2777			
  2778	         115    	RETVAL = SvMAGICAL(sv);
  2779	         115    	XSprePUSH; PUSHu((UV)RETVAL);
  2780			    }
  2781	         115        XSRETURN(1);
  2782			}
  2783			
  2784			
  2785			XS(XS_B__IV_IV); /* prototype to pass -Wmissing-prototypes */
  2786			XS(XS_B__IV_IV)
  2787	         896    {
  2788	         896        dXSARGS;
  2789	         896        if (items != 1)
  2790	      ######    	Perl_croak(aTHX_ "Usage: B::IV::IV(sv)");
  2791	         896        PERL_UNUSED_VAR(cv); /* -W */
  2792			    {
  2793	         896    	B__IV	sv;
  2794	         896    	IV	RETVAL;
  2795	         896    	dXSTARG;
  2796			
  2797	         896    	if (SvROK(ST(0))) {
  2798	         896    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2799	         896    	    sv = INT2PTR(B__IV,tmp);
  2800				}
  2801				else
  2802	      ######    	    croak("sv is not a reference");
  2803			
  2804	         896    	RETVAL = SvIV(sv);
  2805	         896    	XSprePUSH; PUSHi((IV)RETVAL);
  2806			    }
  2807	         896        XSRETURN(1);
  2808			}
  2809			
  2810			
  2811			XS(XS_B__IV_IVX); /* prototype to pass -Wmissing-prototypes */
  2812			XS(XS_B__IV_IVX)
  2813	        5308    {
  2814	        5308        dXSARGS;
  2815	        5308        if (items != 1)
  2816	      ######    	Perl_croak(aTHX_ "Usage: B::IV::IVX(sv)");
  2817	        5308        PERL_UNUSED_VAR(cv); /* -W */
  2818			    {
  2819	        5308    	B__IV	sv;
  2820	        5308    	IV	RETVAL;
  2821	        5308    	dXSTARG;
  2822			
  2823	        5308    	if (SvROK(ST(0))) {
  2824	        5308    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2825	        5308    	    sv = INT2PTR(B__IV,tmp);
  2826				}
  2827				else
  2828	      ######    	    croak("sv is not a reference");
  2829			
  2830	        5308    	RETVAL = SvIVX(sv);
  2831	        5308    	XSprePUSH; PUSHi((IV)RETVAL);
  2832			    }
  2833	        5308        XSRETURN(1);
  2834			}
  2835			
  2836			
  2837			XS(XS_B__IV_UVX); /* prototype to pass -Wmissing-prototypes */
  2838			XS(XS_B__IV_UVX)
  2839	           1    {
  2840	           1        dXSARGS;
  2841	           1        if (items != 1)
  2842	      ######    	Perl_croak(aTHX_ "Usage: B::IV::UVX(sv)");
  2843	           1        PERL_UNUSED_VAR(cv); /* -W */
  2844			    {
  2845	           1    	B__IV	sv;
  2846	           1    	UV	RETVAL;
  2847	           1    	dXSTARG;
  2848			
  2849	           1    	if (SvROK(ST(0))) {
  2850	           1    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2851	           1    	    sv = INT2PTR(B__IV,tmp);
  2852				}
  2853				else
  2854	      ######    	    croak("sv is not a reference");
  2855			
  2856	           1    	RETVAL = SvUVX(sv);
  2857	           1    	XSprePUSH; PUSHu((UV)RETVAL);
  2858			    }
  2859	           1        XSRETURN(1);
  2860			}
  2861			
  2862			#define needs64bits(sv) ((I32)SvIVX(sv) != SvIVX(sv))
  2863			
  2864			XS(XS_B__IV_needs64bits); /* prototype to pass -Wmissing-prototypes */
  2865			XS(XS_B__IV_needs64bits)
  2866	      ######    {
  2867	      ######        dXSARGS;
  2868	      ######        if (items != 1)
  2869	      ######    	Perl_croak(aTHX_ "Usage: B::IV::needs64bits(sv)");
  2870	      ######        PERL_UNUSED_VAR(cv); /* -W */
  2871			    {
  2872	      ######    	B__IV	sv;
  2873	      ######    	int	RETVAL;
  2874	      ######    	dXSTARG;
  2875			
  2876	      ######    	if (SvROK(ST(0))) {
  2877	      ######    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2878	      ######    	    sv = INT2PTR(B__IV,tmp);
  2879				}
  2880				else
  2881	      ######    	    croak("sv is not a reference");
  2882			
  2883	      ######    	RETVAL = needs64bits(sv);
  2884	      ######    	XSprePUSH; PUSHi((IV)RETVAL);
  2885			    }
  2886	      ######        XSRETURN(1);
  2887			}
  2888			
  2889			
  2890			XS(XS_B__IV_packiv); /* prototype to pass -Wmissing-prototypes */
  2891			XS(XS_B__IV_packiv)
  2892	      ######    {
  2893	      ######        dXSARGS;
  2894	      ######        if (items != 1)
  2895	      ######    	Perl_croak(aTHX_ "Usage: B::IV::packiv(sv)");
  2896	      ######        PERL_UNUSED_VAR(cv); /* -W */
  2897			    {
  2898	      ######    	B__IV	sv;
  2899			
  2900	      ######    	if (SvROK(ST(0))) {
  2901	      ######    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2902	      ######    	    sv = INT2PTR(B__IV,tmp);
  2903				}
  2904				else
  2905	      ######    	    croak("sv is not a reference");
  2906			#line 1155 "B.xs"
  2907				if (sizeof(IV) == 8) {
  2908				    U32 wp[2];
  2909				    const IV iv = SvIVX(sv);
  2910				    /*
  2911				     * The following way of spelling 32 is to stop compilers on
  2912				     * 32-bit architectures from moaning about the shift count
  2913				     * being >= the width of the type. Such architectures don't
  2914				     * reach this code anyway (unless sizeof(IV) > 8 but then
  2915				     * everything else breaks too so I'm not fussed at the moment).
  2916				     */
  2917			#ifdef UV_IS_QUAD
  2918				    wp[0] = htonl(((UV)iv) >> (sizeof(UV)*4));
  2919			#else
  2920				    wp[0] = htonl(((U32)iv) >> (sizeof(UV)*4));
  2921			#endif
  2922				    wp[1] = htonl(iv & 0xffffffff);
  2923				    ST(0) = sv_2mortal(newSVpvn((char *)wp, 8));
  2924				} else {
  2925				    U32 w = htonl((U32)SvIVX(sv));
  2926				    ST(0) = sv_2mortal(newSVpvn((char *)&w, 4));
  2927				}
  2928			#line 2929 "B.c"
  2929			    }
  2930	      ######        XSRETURN(1);
  2931			}
  2932			
  2933			
  2934			XS(XS_B__NV_NV); /* prototype to pass -Wmissing-prototypes */
  2935			XS(XS_B__NV_NV)
  2936	           7    {
  2937	           7        dXSARGS;
  2938	           7        if (items != 1)
  2939	      ######    	Perl_croak(aTHX_ "Usage: B::NV::NV(sv)");
  2940	           7        PERL_UNUSED_VAR(cv); /* -W */
  2941			    {
  2942	           7    	B__NV	sv;
  2943	           7    	NV	RETVAL;
  2944	           7    	dXSTARG;
  2945			
  2946	           7    	if (SvROK(ST(0))) {
  2947	           7    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2948	           7    	    sv = INT2PTR(B__NV,tmp);
  2949				}
  2950				else
  2951	      ######    	    croak("sv is not a reference");
  2952			
  2953	           7    	RETVAL = SvNV(sv);
  2954	           7    	XSprePUSH; PUSHn((NV)RETVAL);
  2955			    }
  2956	           7        XSRETURN(1);
  2957			}
  2958			
  2959			
  2960			XS(XS_B__NV_NVX); /* prototype to pass -Wmissing-prototypes */
  2961			XS(XS_B__NV_NVX)
  2962	        5224    {
  2963	        5224        dXSARGS;
  2964	        5224        if (items != 1)
  2965	      ######    	Perl_croak(aTHX_ "Usage: B::NV::NVX(sv)");
  2966	        5224        PERL_UNUSED_VAR(cv); /* -W */
  2967			    {
  2968	        5224    	B__NV	sv;
  2969	        5224    	NV	RETVAL;
  2970	        5224    	dXSTARG;
  2971			
  2972	        5224    	if (SvROK(ST(0))) {
  2973	        5224    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2974	        5224    	    sv = INT2PTR(B__NV,tmp);
  2975				}
  2976				else
  2977	      ######    	    croak("sv is not a reference");
  2978			
  2979	        5224    	RETVAL = SvNVX(sv);
  2980	        5224    	XSprePUSH; PUSHn((NV)RETVAL);
  2981			    }
  2982	        5224        XSRETURN(1);
  2983			}
  2984			
  2985			
  2986			XS(XS_B__RV_RV); /* prototype to pass -Wmissing-prototypes */
  2987			XS(XS_B__RV_RV)
  2988	           2    {
  2989	           2        dXSARGS;
  2990	           2        if (items != 1)
  2991	      ######    	Perl_croak(aTHX_ "Usage: B::RV::RV(sv)");
  2992	           2        PERL_UNUSED_VAR(cv); /* -W */
  2993			    {
  2994	           2    	B__RV	sv;
  2995	           2    	B__SV	RETVAL;
  2996			
  2997	           2    	if (SvROK(ST(0))) {
  2998	           2    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  2999	           2    	    sv = INT2PTR(B__RV,tmp);
  3000				}
  3001				else
  3002	      ######    	    croak("sv is not a reference");
  3003			
  3004	           2    	RETVAL = SvRV(sv);
  3005	           2    	ST(0) = sv_newmortal();
  3006	           2    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
  3007			
  3008			
  3009			    }
  3010	           2        XSRETURN(1);
  3011			}
  3012			
  3013			
  3014			XS(XS_B__PV_PVX); /* prototype to pass -Wmissing-prototypes */
  3015			XS(XS_B__PV_PVX)
  3016	        5446    {
  3017	        5446        dXSARGS;
  3018	        5446        if (items != 1)
  3019	      ######    	Perl_croak(aTHX_ "Usage: B::PV::PVX(sv)");
  3020	        5446        PERL_UNUSED_VAR(cv); /* -W */
  3021			    {
  3022	        5446    	B__PV	sv;
  3023	        5446    	char *	RETVAL;
  3024	        5446    	dXSTARG;
  3025			
  3026	        5446    	if (SvROK(ST(0))) {
  3027	        5446    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3028	        5446    	    sv = INT2PTR(B__PV,tmp);
  3029				}
  3030				else
  3031	      ######    	    croak("sv is not a reference");
  3032			
  3033	        5446    	RETVAL = SvPVX(sv);
  3034	        5446    	sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG;
  3035			    }
  3036	        5446        XSRETURN(1);
  3037			}
  3038			
  3039			
  3040			XS(XS_B__PV_RV); /* prototype to pass -Wmissing-prototypes */
  3041			XS(XS_B__PV_RV)
  3042	           2    {
  3043	           2        dXSARGS;
  3044	           2        if (items != 1)
  3045	      ######    	Perl_croak(aTHX_ "Usage: B::PV::RV(sv)");
  3046	           2        PERL_UNUSED_VAR(cv); /* -W */
  3047			    {
  3048	           2    	B__PV	sv;
  3049	           2    	B__SV	RETVAL;
  3050			
  3051	           2    	if (SvROK(ST(0))) {
  3052	           2    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3053	           2    	    sv = INT2PTR(B__PV,tmp);
  3054				}
  3055				else
  3056	      ######    	    croak("sv is not a reference");
  3057			#line 1203 "B.xs"
  3058			        if( SvROK(sv) ) {
  3059			            RETVAL = SvRV(sv);
  3060			        }
  3061			        else {
  3062			            croak( "argument is not SvROK" );
  3063			        }
  3064			#line 3065 "B.c"
  3065	           1    	ST(0) = sv_newmortal();
  3066	           1    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
  3067			
  3068			
  3069			    }
  3070	           1        XSRETURN(1);
  3071			}
  3072			
  3073			
  3074			XS(XS_B__PV_PV); /* prototype to pass -Wmissing-prototypes */
  3075			XS(XS_B__PV_PV)
  3076	        4039    {
  3077	        4039        dXSARGS;
  3078	        4039        if (items != 1)
  3079	      ######    	Perl_croak(aTHX_ "Usage: B::PV::PV(sv)");
  3080	        4039        PERL_UNUSED_VAR(cv); /* -W */
  3081			    {
  3082	        4039    	B__PV	sv;
  3083			
  3084	        4039    	if (SvROK(ST(0))) {
  3085	        4039    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3086	        4039    	    sv = INT2PTR(B__PV,tmp);
  3087				}
  3088				else
  3089	      ######    	    croak("sv is not a reference");
  3090			#line 1216 "B.xs"
  3091			        ST(0) = sv_newmortal();
  3092			        if( SvPOK(sv) ) {
  3093				    /* FIXME - we need a better way for B to identify PVs that are
  3094				       in the pads as variable names.  */
  3095				    if((SvLEN(sv) && SvCUR(sv) >= SvLEN(sv))) {
  3096					/* It claims to be longer than the space allocated for it -
  3097					   presuambly it's a variable name in the pad  */
  3098					sv_setpv(ST(0), SvPV_nolen_const(sv));
  3099				    } else {
  3100					sv_setpvn(ST(0), SvPVX_const(sv), SvCUR(sv));
  3101				    }
  3102			            SvFLAGS(ST(0)) |= SvUTF8(sv);
  3103			        }
  3104			        else {
  3105			            /* XXX for backward compatibility, but should fail */
  3106			            /* croak( "argument is not SvPOK" ); */
  3107			            sv_setpvn(ST(0), NULL, 0);
  3108			        }
  3109			#line 3110 "B.c"
  3110			    }
  3111	        4039        XSRETURN(1);
  3112			}
  3113			
  3114			
  3115			XS(XS_B__PV_PVBM); /* prototype to pass -Wmissing-prototypes */
  3116			XS(XS_B__PV_PVBM)
  3117	          51    {
  3118	          51        dXSARGS;
  3119	          51        if (items != 1)
  3120	      ######    	Perl_croak(aTHX_ "Usage: B::PV::PVBM(sv)");
  3121	          51        PERL_UNUSED_VAR(cv); /* -W */
  3122			    {
  3123	          51    	B__PV	sv;
  3124			
  3125	          51    	if (SvROK(ST(0))) {
  3126	          51    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3127	          51    	    sv = INT2PTR(B__PV,tmp);
  3128				}
  3129				else
  3130	      ######    	    croak("sv is not a reference");
  3131			#line 1239 "B.xs"
  3132			        ST(0) = sv_newmortal();
  3133				sv_setpvn(ST(0), SvPVX_const(sv),
  3134				    SvCUR(sv) + (SvTYPE(sv) == SVt_PVBM ? 257 : 0));
  3135			#line 3136 "B.c"
  3136			    }
  3137	          51        XSRETURN(1);
  3138			}
  3139			
  3140			
  3141			XS(XS_B__PV_LEN); /* prototype to pass -Wmissing-prototypes */
  3142			XS(XS_B__PV_LEN)
  3143	      ######    {
  3144	      ######        dXSARGS;
  3145	      ######        if (items != 1)
  3146	      ######    	Perl_croak(aTHX_ "Usage: B::PV::LEN(sv)");
  3147	      ######        PERL_UNUSED_VAR(cv); /* -W */
  3148			    {
  3149	      ######    	B__PV	sv;
  3150	      ######    	STRLEN	RETVAL;
  3151	      ######    	dXSTARG;
  3152			
  3153	      ######    	if (SvROK(ST(0))) {
  3154	      ######    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3155	      ######    	    sv = INT2PTR(B__PV,tmp);
  3156				}
  3157				else
  3158	      ######    	    croak("sv is not a reference");
  3159			
  3160	      ######    	RETVAL = SvLEN(sv);
  3161	      ######    	XSprePUSH; PUSHu((UV)RETVAL);
  3162			    }
  3163	      ######        XSRETURN(1);
  3164			}
  3165			
  3166			
  3167			XS(XS_B__PV_CUR); /* prototype to pass -Wmissing-prototypes */
  3168			XS(XS_B__PV_CUR)
  3169	           1    {
  3170	           1        dXSARGS;
  3171	           1        if (items != 1)
  3172	      ######    	Perl_croak(aTHX_ "Usage: B::PV::CUR(sv)");
  3173	           1        PERL_UNUSED_VAR(cv); /* -W */
  3174			    {
  3175	           1    	B__PV	sv;
  3176	           1    	STRLEN	RETVAL;
  3177	           1    	dXSTARG;
  3178			
  3179	           1    	if (SvROK(ST(0))) {
  3180	           1    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3181	           1    	    sv = INT2PTR(B__PV,tmp);
  3182				}
  3183				else
  3184	      ######    	    croak("sv is not a reference");
  3185			
  3186	           1    	RETVAL = SvCUR(sv);
  3187	           1    	XSprePUSH; PUSHu((UV)RETVAL);
  3188			    }
  3189	           1        XSRETURN(1);
  3190			}
  3191			
  3192			
  3193			XS(XS_B__PVMG_MAGIC); /* prototype to pass -Wmissing-prototypes */
  3194			XS(XS_B__PVMG_MAGIC)
  3195	           4    {
  3196	           4        dXSARGS;
  3197	           4        if (items != 1)
  3198	      ######    	Perl_croak(aTHX_ "Usage: B::PVMG::MAGIC(sv)");
  3199	           4        PERL_UNUSED_VAR(cv); /* -W */
  3200	           4        PERL_UNUSED_VAR(ax); /* -Wall */
  3201	           4        SP -= items;
  3202			    {
  3203	           4    	B__PVMG	sv;
  3204	           4    	MAGIC *	mg;
  3205			
  3206	           4    	if (SvROK(ST(0))) {
  3207	           4    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3208	           4    	    sv = INT2PTR(B__PVMG,tmp);
  3209				}
  3210				else
  3211	      ######    	    croak("sv is not a reference");
  3212			#line 1259 "B.xs"
  3213				for (mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic)
  3214				    XPUSHs(make_mg_object(aTHX_ sv_newmortal(), mg));
  3215			#line 3216 "B.c"
  3216	           4    	PUTBACK;
  3217				return;
  3218			    }
  3219			}
  3220			
  3221			
  3222			XS(XS_B__PVMG_SvSTASH); /* prototype to pass -Wmissing-prototypes */
  3223			XS(XS_B__PVMG_SvSTASH)
  3224	         118    {
  3225	         118        dXSARGS;
  3226	         118        if (items != 1)
  3227	      ######    	Perl_croak(aTHX_ "Usage: B::PVMG::SvSTASH(sv)");
  3228	         118        PERL_UNUSED_VAR(cv); /* -W */
  3229			    {
  3230	         118    	B__PVMG	sv;
  3231	         118    	B__HV	RETVAL;
  3232			
  3233	         118    	if (SvROK(ST(0))) {
  3234	         118    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3235	         118    	    sv = INT2PTR(B__PVMG,tmp);
  3236				}
  3237				else
  3238	      ######    	    croak("sv is not a reference");
  3239			
  3240	         118    	RETVAL = SvSTASH(sv);
  3241	         118    	ST(0) = sv_newmortal();
  3242	         118    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
  3243			
  3244			
  3245			    }
  3246	         118        XSRETURN(1);
  3247			}
  3248			
  3249			#define MgMOREMAGIC(mg) mg->mg_moremagic
  3250			#define MgPRIVATE(mg) mg->mg_private
  3251			#define MgTYPE(mg) mg->mg_type
  3252			#define MgFLAGS(mg) mg->mg_flags
  3253			#define MgOBJ(mg) mg->mg_obj
  3254			#define MgLENGTH(mg) mg->mg_len
  3255			#define MgREGEX(mg) PTR2IV(mg->mg_obj)
  3256			
  3257			XS(XS_B__MAGIC_MOREMAGIC); /* prototype to pass -Wmissing-prototypes */
  3258			XS(XS_B__MAGIC_MOREMAGIC)
  3259	           1    {
  3260	           1        dXSARGS;
  3261	           1        if (items != 1)
  3262	      ######    	Perl_croak(aTHX_ "Usage: B::MAGIC::MOREMAGIC(mg)");
  3263	           1        PERL_UNUSED_VAR(cv); /* -W */
  3264			    {
  3265	           1    	B__MAGIC	mg;
  3266	           1    	B__MAGIC	RETVAL;
  3267			
  3268	           1    	if (SvROK(ST(0))) {
  3269	           1    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3270	           1    	    mg = INT2PTR(B__MAGIC,tmp);
  3271				}
  3272				else
  3273	      ######    	    croak("mg is not a reference");
  3274			#line 1282 "B.xs"
  3275				if( MgMOREMAGIC(mg) ) {
  3276				    RETVAL = MgMOREMAGIC(mg);
  3277				}
  3278				else {
  3279				    XSRETURN_UNDEF;
  3280				}
  3281			#line 3282 "B.c"
  3282	      ######    	ST(0) = sv_newmortal();
  3283	      ######    	sv_setiv(newSVrv(ST(0), "B::MAGIC"), PTR2IV(RETVAL));
  3284			    }
  3285	      ######        XSRETURN(1);
  3286			}
  3287			
  3288			
  3289			XS(XS_B__MAGIC_PRIVATE); /* prototype to pass -Wmissing-prototypes */
  3290			XS(XS_B__MAGIC_PRIVATE)
  3291	      ######    {
  3292	      ######        dXSARGS;
  3293	      ######        if (items != 1)
  3294	      ######    	Perl_croak(aTHX_ "Usage: B::MAGIC::PRIVATE(mg)");
  3295	      ######        PERL_UNUSED_VAR(cv); /* -W */
  3296			    {
  3297	      ######    	B__MAGIC	mg;
  3298	      ######    	U16	RETVAL;
  3299	      ######    	dXSTARG;
  3300			
  3301	      ######    	if (SvROK(ST(0))) {
  3302	      ######    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3303	      ######    	    mg = INT2PTR(B__MAGIC,tmp);
  3304				}
  3305				else
  3306	      ######    	    croak("mg is not a reference");
  3307			
  3308	      ######    	RETVAL = MgPRIVATE(mg);
  3309	      ######    	XSprePUSH; PUSHu((UV)RETVAL);
  3310			    }
  3311	      ######        XSRETURN(1);
  3312			}
  3313			
  3314			
  3315			XS(XS_B__MAGIC_TYPE); /* prototype to pass -Wmissing-prototypes */
  3316			XS(XS_B__MAGIC_TYPE)
  3317	           3    {
  3318	           3        dXSARGS;
  3319	           3        if (items != 1)
  3320	      ######    	Perl_croak(aTHX_ "Usage: B::MAGIC::TYPE(mg)");
  3321	           3        PERL_UNUSED_VAR(cv); /* -W */
  3322			    {
  3323	           3    	B__MAGIC	mg;
  3324	           3    	char	RETVAL;
  3325	           3    	dXSTARG;
  3326			
  3327	           3    	if (SvROK(ST(0))) {
  3328	           3    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3329	           3    	    mg = INT2PTR(B__MAGIC,tmp);
  3330				}
  3331				else
  3332	      ######    	    croak("mg is not a reference");
  3333			
  3334	           3    	RETVAL = MgTYPE(mg);
  3335	           3    	XSprePUSH; PUSHp((char *)&RETVAL, 1);
  3336			    }
  3337	           3        XSRETURN(1);
  3338			}
  3339			
  3340			
  3341			XS(XS_B__MAGIC_FLAGS); /* prototype to pass -Wmissing-prototypes */
  3342			XS(XS_B__MAGIC_FLAGS)
  3343	      ######    {
  3344	      ######        dXSARGS;
  3345	      ######        if (items != 1)
  3346	      ######    	Perl_croak(aTHX_ "Usage: B::MAGIC::FLAGS(mg)");
  3347	      ######        PERL_UNUSED_VAR(cv); /* -W */
  3348			    {
  3349	      ######    	B__MAGIC	mg;
  3350	      ######    	U8	RETVAL;
  3351	      ######    	dXSTARG;
  3352			
  3353	      ######    	if (SvROK(ST(0))) {
  3354	      ######    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3355	      ######    	    mg = INT2PTR(B__MAGIC,tmp);
  3356				}
  3357				else
  3358	      ######    	    croak("mg is not a reference");
  3359			
  3360	      ######    	RETVAL = MgFLAGS(mg);
  3361	      ######    	XSprePUSH; PUSHu((UV)RETVAL);
  3362			    }
  3363	      ######        XSRETURN(1);
  3364			}
  3365			
  3366			
  3367			XS(XS_B__MAGIC_OBJ); /* prototype to pass -Wmissing-prototypes */
  3368			XS(XS_B__MAGIC_OBJ)
  3369	           2    {
  3370	           2        dXSARGS;
  3371	           2        if (items != 1)
  3372	      ######    	Perl_croak(aTHX_ "Usage: B::MAGIC::OBJ(mg)");
  3373	           2        PERL_UNUSED_VAR(cv); /* -W */
  3374			    {
  3375	           2    	B__MAGIC	mg;
  3376	           2    	B__SV	RETVAL;
  3377			
  3378	           2    	if (SvROK(ST(0))) {
  3379	           2    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3380	           2    	    mg = INT2PTR(B__MAGIC,tmp);
  3381				}
  3382				else
  3383	      ######    	    croak("mg is not a reference");
  3384			
  3385	           2    	RETVAL = MgOBJ(mg);
  3386	           2    	ST(0) = sv_newmortal();
  3387	           2    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
  3388			
  3389			
  3390			    }
  3391	           2        XSRETURN(1);
  3392			}
  3393			
  3394			
  3395			XS(XS_B__MAGIC_REGEX); /* prototype to pass -Wmissing-prototypes */
  3396			XS(XS_B__MAGIC_REGEX)
  3397	      ######    {
  3398	      ######        dXSARGS;
  3399	      ######        if (items != 1)
  3400	      ######    	Perl_croak(aTHX_ "Usage: B::MAGIC::REGEX(mg)");
  3401	      ######        PERL_UNUSED_VAR(cv); /* -W */
  3402			    {
  3403	      ######    	B__MAGIC	mg;
  3404	      ######    	IV	RETVAL;
  3405	      ######    	dXSTARG;
  3406			
  3407	      ######    	if (SvROK(ST(0))) {
  3408	      ######    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3409	      ######    	    mg = INT2PTR(B__MAGIC,tmp);
  3410				}
  3411				else
  3412	      ######    	    croak("mg is not a reference");
  3413			#line 1311 "B.xs"
  3414			        if( mg->mg_type == 'r' ) {
  3415			            RETVAL = MgREGEX(mg);
  3416			        }
  3417			        else {
  3418			            croak( "REGEX is only meaningful on r-magic" );
  3419			        }
  3420			#line 3421 "B.c"
  3421	      ######    	XSprePUSH; PUSHi((IV)RETVAL);
  3422			    }
  3423	      ######        XSRETURN(1);
  3424			}
  3425			
  3426			
  3427			XS(XS_B__MAGIC_precomp); /* prototype to pass -Wmissing-prototypes */
  3428			XS(XS_B__MAGIC_precomp)
  3429	      ######    {
  3430	      ######        dXSARGS;
  3431	      ######        if (items != 1)
  3432	      ######    	Perl_croak(aTHX_ "Usage: B::MAGIC::precomp(mg)");
  3433	      ######        PERL_UNUSED_VAR(cv); /* -W */
  3434			    {
  3435	      ######    	B__MAGIC	mg;
  3436	      ######    	SV *	RETVAL;
  3437			
  3438	      ######    	if (SvROK(ST(0))) {
  3439	      ######    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3440	      ######    	    mg = INT2PTR(B__MAGIC,tmp);
  3441				}
  3442				else
  3443	      ######    	    croak("mg is not a reference");
  3444			#line 1324 "B.xs"
  3445			        if (mg->mg_type == 'r') {
  3446			            REGEXP* rx = (REGEXP*)mg->mg_obj;
  3447			            if( rx )
  3448			                RETVAL = newSVpvn( rx->precomp, rx->prelen );
  3449			        }
  3450			        else {
  3451			            croak( "precomp is only meaningful on r-magic" );
  3452			        }
  3453			#line 3454 "B.c"
  3454	      ######    	ST(0) = RETVAL;
  3455	      ######    	sv_2mortal(ST(0));
  3456			    }
  3457	      ######        XSRETURN(1);
  3458			}
  3459			
  3460			
  3461			XS(XS_B__MAGIC_LENGTH); /* prototype to pass -Wmissing-prototypes */
  3462			XS(XS_B__MAGIC_LENGTH)
  3463	           4    {
  3464	           4        dXSARGS;
  3465	           4        if (items != 1)
  3466	      ######    	Perl_croak(aTHX_ "Usage: B::MAGIC::LENGTH(mg)");
  3467	           4        PERL_UNUSED_VAR(cv); /* -W */
  3468			    {
  3469	           4    	B__MAGIC	mg;
  3470	           4    	I32	RETVAL;
  3471	           4    	dXSTARG;
  3472			
  3473	           4    	if (SvROK(ST(0))) {
  3474	           4    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3475	           4    	    mg = INT2PTR(B__MAGIC,tmp);
  3476				}
  3477				else
  3478	      ######    	    croak("mg is not a reference");
  3479			
  3480	           4    	RETVAL = MgLENGTH(mg);
  3481	           4    	XSprePUSH; PUSHi((IV)RETVAL);
  3482			    }
  3483	           4        XSRETURN(1);
  3484			}
  3485			
  3486			
  3487			XS(XS_B__MAGIC_PTR); /* prototype to pass -Wmissing-prototypes */
  3488			XS(XS_B__MAGIC_PTR)
  3489	      ######    {
  3490	      ######        dXSARGS;
  3491	      ######        if (items != 1)
  3492	      ######    	Perl_croak(aTHX_ "Usage: B::MAGIC::PTR(mg)");
  3493	      ######        PERL_UNUSED_VAR(cv); /* -W */
  3494			    {
  3495	      ######    	B__MAGIC	mg;
  3496			
  3497	      ######    	if (SvROK(ST(0))) {
  3498	      ######    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3499	      ######    	    mg = INT2PTR(B__MAGIC,tmp);
  3500				}
  3501				else
  3502	      ######    	    croak("mg is not a reference");
  3503			#line 1343 "B.xs"
  3504				ST(0) = sv_newmortal();
  3505			 	if (mg->mg_ptr){
  3506					if (mg->mg_len >= 0){
  3507				    		sv_setpvn(ST(0), mg->mg_ptr, mg->mg_len);
  3508					} else if (mg->mg_len == HEf_SVKEY) {
  3509						ST(0) = make_sv_object(aTHX_
  3510							    sv_newmortal(), (SV*)mg->mg_ptr);
  3511					}
  3512				}
  3513			#line 3514 "B.c"
  3514			    }
  3515	      ######        XSRETURN(1);
  3516			}
  3517			
  3518			
  3519			XS(XS_B__PVLV_TARGOFF); /* prototype to pass -Wmissing-prototypes */
  3520			XS(XS_B__PVLV_TARGOFF)
  3521	      ######    {
  3522	      ######        dXSARGS;
  3523	      ######        if (items != 1)
  3524	      ######    	Perl_croak(aTHX_ "Usage: B::PVLV::TARGOFF(sv)");
  3525	      ######        PERL_UNUSED_VAR(cv); /* -W */
  3526			    {
  3527	      ######    	B__PVLV	sv;
  3528	      ######    	U32	RETVAL;
  3529	      ######    	dXSTARG;
  3530			
  3531	      ######    	if (SvROK(ST(0))) {
  3532	      ######    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3533	      ######    	    sv = INT2PTR(B__PVLV,tmp);
  3534				}
  3535				else
  3536	      ######    	    croak("sv is not a reference");
  3537			
  3538	      ######    	RETVAL = LvTARGOFF(sv);
  3539	      ######    	XSprePUSH; PUSHu((UV)RETVAL);
  3540			    }
  3541	      ######        XSRETURN(1);
  3542			}
  3543			
  3544			
  3545			XS(XS_B__PVLV_TARGLEN); /* prototype to pass -Wmissing-prototypes */
  3546			XS(XS_B__PVLV_TARGLEN)
  3547	      ######    {
  3548	      ######        dXSARGS;
  3549	      ######        if (items != 1)
  3550	      ######    	Perl_croak(aTHX_ "Usage: B::PVLV::TARGLEN(sv)");
  3551	      ######        PERL_UNUSED_VAR(cv); /* -W */
  3552			    {
  3553	      ######    	B__PVLV	sv;
  3554	      ######    	U32	RETVAL;
  3555	      ######    	dXSTARG;
  3556			
  3557	      ######    	if (SvROK(ST(0))) {
  3558	      ######    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3559	      ######    	    sv = INT2PTR(B__PVLV,tmp);
  3560				}
  3561				else
  3562	      ######    	    croak("sv is not a reference");
  3563			
  3564	      ######    	RETVAL = LvTARGLEN(sv);
  3565	      ######    	XSprePUSH; PUSHu((UV)RETVAL);
  3566			    }
  3567	      ######        XSRETURN(1);
  3568			}
  3569			
  3570			
  3571			XS(XS_B__PVLV_TYPE); /* prototype to pass -Wmissing-prototypes */
  3572			XS(XS_B__PVLV_TYPE)
  3573	      ######    {
  3574	      ######        dXSARGS;
  3575	      ######        if (items != 1)
  3576	      ######    	Perl_croak(aTHX_ "Usage: B::PVLV::TYPE(sv)");
  3577	      ######        PERL_UNUSED_VAR(cv); /* -W */
  3578			    {
  3579	      ######    	B__PVLV	sv;
  3580	      ######    	char	RETVAL;
  3581	      ######    	dXSTARG;
  3582			
  3583	      ######    	if (SvROK(ST(0))) {
  3584	      ######    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3585	      ######    	    sv = INT2PTR(B__PVLV,tmp);
  3586				}
  3587				else
  3588	      ######    	    croak("sv is not a reference");
  3589			
  3590	      ######    	RETVAL = LvTYPE(sv);
  3591	      ######    	XSprePUSH; PUSHp((char *)&RETVAL, 1);
  3592			    }
  3593	      ######        XSRETURN(1);
  3594			}
  3595			
  3596			
  3597			XS(XS_B__PVLV_TARG); /* prototype to pass -Wmissing-prototypes */
  3598			XS(XS_B__PVLV_TARG)
  3599	      ######    {
  3600	      ######        dXSARGS;
  3601	      ######        if (items != 1)
  3602	      ######    	Perl_croak(aTHX_ "Usage: B::PVLV::TARG(sv)");
  3603	      ######        PERL_UNUSED_VAR(cv); /* -W */
  3604			    {
  3605	      ######    	B__PVLV	sv;
  3606	      ######    	B__SV	RETVAL;
  3607			
  3608	      ######    	if (SvROK(ST(0))) {
  3609	      ######    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3610	      ######    	    sv = INT2PTR(B__PVLV,tmp);
  3611				}
  3612				else
  3613	      ######    	    croak("sv is not a reference");
  3614			
  3615	      ######    	RETVAL = LvTARG(sv);
  3616	      ######    	ST(0) = sv_newmortal();
  3617	      ######    	make_sv_object(aTHX_ (ST(0)), (SV*)(RETVAL));
  3618			
  3619			
  3620			    }
  3621	      ######        XSRETURN(1);
  3622			}
  3623			
  3624			
  3625			XS(XS_B__BM_USEFUL); /* prototype to pass -Wmissing-prototypes */
  3626			XS(XS_B__BM_USEFUL)
  3627	           1    {
  3628	           1        dXSARGS;
  3629	           1        if (items != 1)
  3630	      ######    	Perl_croak(aTHX_ "Usage: B::BM::USEFUL(sv)");
  3631	           1        PERL_UNUSED_VAR(cv); /* -W */
  3632			    {
  3633	           1    	B__BM	sv;
  3634	           1    	I32	RETVAL;
  3635	           1    	dXSTARG;
  3636			
  3637	           1    	if (SvROK(ST(0))) {
  3638	           1    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3639	           1    	    sv = INT2PTR(B__BM,tmp);
  3640				}
  3641				else
  3642	      ######    	    croak("sv is not a reference");
  3643			
  3644	           1    	RETVAL = BmUSEFUL(sv);
  3645	           1    	XSprePUSH; PUSHi((IV)RETVAL);
  3646			    }
  3647	           1        XSRETURN(1);
  3648			}
  3649			
  3650			
  3651			XS(XS_B__BM_PREVIOUS); /* prototype to pass -Wmissing-prototypes */
  3652			XS(XS_B__BM_PREVIOUS)
  3653	           1    {
  3654	           1        dXSARGS;
  3655	           1        if (items != 1)
  3656	      ######    	Perl_croak(aTHX_ "Usage: B::BM::PREVIOUS(sv)");
  3657	           1        PERL_UNUSED_VAR(cv); /* -W */
  3658			    {
  3659	           1    	B__BM	sv;
  3660	           1    	U16	RETVAL;
  3661	           1    	dXSTARG;
  3662			
  3663	           1    	if (SvROK(ST(0))) {
  3664	           1    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3665	           1    	    sv = INT2PTR(B__BM,tmp);
  3666				}
  3667				else
  3668	      ######    	    croak("sv is not a reference");
  3669			
  3670	           1    	RETVAL = BmPREVIOUS(sv);
  3671	           1    	XSprePUSH; PUSHu((UV)RETVAL);
  3672			    }
  3673	           1        XSRETURN(1);
  3674			}
  3675			
  3676			
  3677			XS(XS_B__BM_RARE); /* prototype to pass -Wmissing-prototypes */
  3678			XS(XS_B__BM_RARE)
  3679	           1    {
  3680	           1        dXSARGS;
  3681	           1        if (items != 1)
  3682	      ######    	Perl_croak(aTHX_ "Usage: B::BM::RARE(sv)");
  3683	           1        PERL_UNUSED_VAR(cv); /* -W */
  3684			    {
  3685	           1    	B__BM	sv;
  3686	           1    	U8	RETVAL;
  3687	           1    	dXSTARG;
  3688			
  3689	           1    	if (SvROK(ST(0))) {
  3690	           1    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3691	           1    	    sv = INT2PTR(B__BM,tmp);
  3692				}
  3693				else
  3694	      ######    	    croak("sv is not a reference");
  3695			
  3696	           1    	RETVAL = BmRARE(sv);
  3697	           1    	XSprePUSH; PUSHu((UV)RETVAL);
  3698			    }
  3699	           1        XSRETURN(1);
  3700			}
  3701			
  3702			
  3703			XS(XS_B__BM_TABLE); /* prototype to pass -Wmissing-prototypes */
  3704			XS(XS_B__BM_TABLE)
  3705	      ######    {
  3706	      ######        dXSARGS;
  3707	      ######        if (items != 1)
  3708	      ######    	Perl_croak(aTHX_ "Usage: B::BM::TABLE(sv)");
  3709	      ######        PERL_UNUSED_VAR(cv); /* -W */
  3710			    {
  3711	      ######    	B__BM	sv;
  3712	      ######    	STRLEN	len;
  3713	      ######    	char *	str;
  3714			
  3715	      ######    	if (SvROK(ST(0))) {
  3716	      ######    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3717	      ######    	    sv = INT2PTR(B__BM,tmp);
  3718				}
  3719				else
  3720	      ######    	    croak("sv is not a reference");
  3721			#line 1391 "B.xs"
  3722				str = SvPV(sv, len);
  3723				/* Boyer-Moore table is just after string and its safety-margin \0 */
  3724				ST(0) = sv_2mortal(newSVpvn(str + len + 1, 256));
  3725			#line 3726 "B.c"
  3726			    }
  3727	      ######        XSRETURN(1);
  3728			}
  3729			
  3730			
  3731			XS(XS_B__GV_NAME); /* prototype to pass -Wmissing-prototypes */
  3732			XS(XS_B__GV_NAME)
  3733	        4269    {
  3734	        4269        dXSARGS;
  3735	        4269        if (items != 1)
  3736	      ######    	Perl_croak(aTHX_ "Usage: B::GV::NAME(gv)");
  3737	        4269        PERL_UNUSED_VAR(cv); /* -W */
  3738			    {
  3739	        4269    	B__GV	gv;
  3740			
  3741	        4269    	if (SvROK(ST(0))) {
  3742	        4269    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3743	        4269    	    gv = INT2PTR(B__GV,tmp);
  3744				}
  3745				else
  3746	      ######    	    croak("gv is not a reference");
  3747			#line 1401 "B.xs"
  3748				ST(0) = sv_2mortal(newSVpvn(GvNAME(gv), GvNAMELEN(gv)));
  3749			#line 3750 "B.c"
  3750			    }
  3751	        4269        XSRETURN(1);
  3752			}
  3753			
  3754			
  3755			XS(XS_B__GV_is_empty); /* prototype to pass -Wmissing-prototypes */
  3756			XS(XS_B__GV_is_empty)
  3757	           1    {
  3758	           1        dXSARGS;
  3759	           1        if (items != 1)
  3760	      ######    	Perl_croak(aTHX_ "Usage: B::GV::is_empty(gv)");
  3761	           1        PERL_UNUSED_VAR(cv); /* -W */
  3762			    {
  3763	           1    	B__GV	gv;
  3764	           1    	bool	RETVAL;
  3765			
  3766	           1    	if (SvROK(ST(0))) {
  3767	           1    	    IV tmp = SvIV((SV*)SvRV(ST(0)));
  3768	           1    	    gv = INT2PTR(B__GV,tmp);
  3769				}
  3770				else
  3771	      ######    	    croak("gv is not a reference");
  3772			#line 1407 "B.xs"
  3773			        RETVAL = GvGP(gv) == Null(GP*);
  3774			#line 3775 "B.c"
  3775	           1    	ST(0) = boolSV(RETVAL);
  3776	           1    	sv_2mortal(ST(0));
  3777			    }
  3778	           1        XSRETURN(1);
  3779			}
  3780			
  3781			
  3782			XS(XS_B__GV_GP); /* prototype to pass -Wmissing-prototypes */
  3783			XS(XS_B__GV_GP)
  3784	          48    {
  3785	          48        dXSARGS;
  3786	          48        if (items != 1)
  3787	      ######    	Perl_croak(aTHX_ "Usage: B::GV::GP(gv)");
  3788	          48        PERL_UNUSED_VAR(cv); /* -W */
  3789			    {
  3790	          48    	B__GV	gv;
  3791	          48    	void *	RETVAL;
  3792	          48    	dXSTARG;
  3793			
  3794	          48    	if (SvROK(ST(0))) {
  3795	          48    	    IV tmp = SvIV((SV*)SvRV(S