-/* Put interpreter-specific symbols into a struct? */
-
-#ifdef MULTIPLICITY
-
-#ifndef USE_THREADS
-/* If we do not have threads then per-thread vars are per-interpreter */
-
-#define PL_Sv (PL_curinterp->TSv)
-#define PL_Xpv (PL_curinterp->TXpv)
-#define PL_av_fetch_sv (PL_curinterp->Tav_fetch_sv)
-#define PL_bodytarget (PL_curinterp->Tbodytarget)
-#define PL_bostr (PL_curinterp->Tbostr)
-#define PL_chopset (PL_curinterp->Tchopset)
-#define PL_colors (PL_curinterp->Tcolors)
-#define PL_colorset (PL_curinterp->Tcolorset)
-#define PL_curcop (PL_curinterp->Tcurcop)
-#define PL_curpad (PL_curinterp->Tcurpad)
-#define PL_curpm (PL_curinterp->Tcurpm)
-#define PL_curstack (PL_curinterp->Tcurstack)
-#define PL_curstackinfo (PL_curinterp->Tcurstackinfo)
-#define PL_curstash (PL_curinterp->Tcurstash)
-#define PL_defoutgv (PL_curinterp->Tdefoutgv)
-#define PL_defstash (PL_curinterp->Tdefstash)
-#define PL_delaymagic (PL_curinterp->Tdelaymagic)
-#define PL_dirty (PL_curinterp->Tdirty)
-#define PL_dumpindent (PL_curinterp->Tdumpindent)
-#define PL_extralen (PL_curinterp->Textralen)
-#define PL_firstgv (PL_curinterp->Tfirstgv)
-#define PL_formtarget (PL_curinterp->Tformtarget)
-#define PL_hv_fetch_ent_mh (PL_curinterp->Thv_fetch_ent_mh)
-#define PL_hv_fetch_sv (PL_curinterp->Thv_fetch_sv)
-#define PL_in_eval (PL_curinterp->Tin_eval)
-#define PL_last_in_gv (PL_curinterp->Tlast_in_gv)
-#define PL_lastgotoprobe (PL_curinterp->Tlastgotoprobe)
-#define PL_lastscream (PL_curinterp->Tlastscream)
-#define PL_localizing (PL_curinterp->Tlocalizing)
-#define PL_mainstack (PL_curinterp->Tmainstack)
-#define PL_markstack (PL_curinterp->Tmarkstack)
-#define PL_markstack_max (PL_curinterp->Tmarkstack_max)
-#define PL_markstack_ptr (PL_curinterp->Tmarkstack_ptr)
-#define PL_maxscream (PL_curinterp->Tmaxscream)
-#define PL_modcount (PL_curinterp->Tmodcount)
-#define PL_na (PL_curinterp->Tna)
-#define PL_nrs (PL_curinterp->Tnrs)
-#define PL_ofs (PL_curinterp->Tofs)
-#define PL_ofslen (PL_curinterp->Tofslen)
-#define PL_op (PL_curinterp->Top)
-#define PL_opsave (PL_curinterp->Topsave)
-#define PL_protect (PL_curinterp->Tprotect)
-#define PL_reg_call_cc (PL_curinterp->Treg_call_cc)
-#define PL_reg_curpm (PL_curinterp->Treg_curpm)
-#define PL_reg_eval_set (PL_curinterp->Treg_eval_set)
-#define PL_reg_flags (PL_curinterp->Treg_flags)
-#define PL_reg_ganch (PL_curinterp->Treg_ganch)
-#define PL_reg_magic (PL_curinterp->Treg_magic)
-#define PL_reg_oldcurpm (PL_curinterp->Treg_oldcurpm)
-#define PL_reg_oldpos (PL_curinterp->Treg_oldpos)
-#define PL_reg_oldsaved (PL_curinterp->Treg_oldsaved)
-#define PL_reg_oldsavedlen (PL_curinterp->Treg_oldsavedlen)
-#define PL_reg_re (PL_curinterp->Treg_re)
-#define PL_reg_start_tmp (PL_curinterp->Treg_start_tmp)
-#define PL_reg_start_tmpl (PL_curinterp->Treg_start_tmpl)
-#define PL_reg_starttry (PL_curinterp->Treg_starttry)
-#define PL_reg_sv (PL_curinterp->Treg_sv)
-#define PL_regbol (PL_curinterp->Tregbol)
-#define PL_regcc (PL_curinterp->Tregcc)
-#define PL_regcode (PL_curinterp->Tregcode)
-#define PL_regcomp_parse (PL_curinterp->Tregcomp_parse)
-#define PL_regcomp_rx (PL_curinterp->Tregcomp_rx)
-#define PL_regcompp (PL_curinterp->Tregcompp)
-#define PL_regdata (PL_curinterp->Tregdata)
-#define PL_regdummy (PL_curinterp->Tregdummy)
-#define PL_regendp (PL_curinterp->Tregendp)
-#define PL_regeol (PL_curinterp->Tregeol)
-#define PL_regexecp (PL_curinterp->Tregexecp)
-#define PL_regflags (PL_curinterp->Tregflags)
-#define PL_regindent (PL_curinterp->Tregindent)
-#define PL_reginput (PL_curinterp->Treginput)
-#define PL_reginterp_cnt (PL_curinterp->Treginterp_cnt)
-#define PL_reglastparen (PL_curinterp->Treglastparen)
-#define PL_regnarrate (PL_curinterp->Tregnarrate)
-#define PL_regnaughty (PL_curinterp->Tregnaughty)
-#define PL_regnpar (PL_curinterp->Tregnpar)
-#define PL_regprecomp (PL_curinterp->Tregprecomp)
-#define PL_regprev (PL_curinterp->Tregprev)
-#define PL_regprogram (PL_curinterp->Tregprogram)
-#define PL_regsawback (PL_curinterp->Tregsawback)
-#define PL_regseen (PL_curinterp->Tregseen)
-#define PL_regsize (PL_curinterp->Tregsize)
-#define PL_regstartp (PL_curinterp->Tregstartp)
-#define PL_regtill (PL_curinterp->Tregtill)
-#define PL_regxend (PL_curinterp->Tregxend)
-#define PL_restartop (PL_curinterp->Trestartop)
-#define PL_retstack (PL_curinterp->Tretstack)
-#define PL_retstack_ix (PL_curinterp->Tretstack_ix)
-#define PL_retstack_max (PL_curinterp->Tretstack_max)
-#define PL_rs (PL_curinterp->Trs)
-#define PL_savestack (PL_curinterp->Tsavestack)
-#define PL_savestack_ix (PL_curinterp->Tsavestack_ix)
-#define PL_savestack_max (PL_curinterp->Tsavestack_max)
-#define PL_scopestack (PL_curinterp->Tscopestack)
-#define PL_scopestack_ix (PL_curinterp->Tscopestack_ix)
-#define PL_scopestack_max (PL_curinterp->Tscopestack_max)
-#define PL_screamfirst (PL_curinterp->Tscreamfirst)
-#define PL_screamnext (PL_curinterp->Tscreamnext)
-#define PL_secondgv (PL_curinterp->Tsecondgv)
-#define PL_seen_evals (PL_curinterp->Tseen_evals)
-#define PL_seen_zerolen (PL_curinterp->Tseen_zerolen)
-#define PL_sortcop (PL_curinterp->Tsortcop)
-#define PL_sortcxix (PL_curinterp->Tsortcxix)
-#define PL_sortstash (PL_curinterp->Tsortstash)
-#define PL_stack_base (PL_curinterp->Tstack_base)
-#define PL_stack_max (PL_curinterp->Tstack_max)
-#define PL_stack_sp (PL_curinterp->Tstack_sp)
-#define PL_start_env (PL_curinterp->Tstart_env)
-#define PL_statbuf (PL_curinterp->Tstatbuf)
-#define PL_statcache (PL_curinterp->Tstatcache)
-#define PL_statgv (PL_curinterp->Tstatgv)
-#define PL_statname (PL_curinterp->Tstatname)
-#define PL_tainted (PL_curinterp->Ttainted)
-#define PL_timesbuf (PL_curinterp->Ttimesbuf)
-#define PL_tmps_floor (PL_curinterp->Ttmps_floor)
-#define PL_tmps_ix (PL_curinterp->Ttmps_ix)
-#define PL_tmps_max (PL_curinterp->Ttmps_max)
-#define PL_tmps_stack (PL_curinterp->Ttmps_stack)
-#define PL_top_env (PL_curinterp->Ttop_env)
-#define PL_toptarget (PL_curinterp->Ttoptarget)
-#define PL_watchaddr (PL_curinterp->Twatchaddr)
-#define PL_watchok (PL_curinterp->Twatchok)
-
-#endif /* !USE_THREADS */
-
-/* These are always per-interpreter if there is more than one */
-
-#define PL_Argv (PL_curinterp->IArgv)
-#define PL_Cmd (PL_curinterp->ICmd)
-#define PL_DBcv (PL_curinterp->IDBcv)
-#define PL_DBgv (PL_curinterp->IDBgv)
-#define PL_DBline (PL_curinterp->IDBline)
-#define PL_DBsignal (PL_curinterp->IDBsignal)
-#define PL_DBsingle (PL_curinterp->IDBsingle)
-#define PL_DBsub (PL_curinterp->IDBsub)
-#define PL_DBtrace (PL_curinterp->IDBtrace)
-#define PL_ampergv (PL_curinterp->Iampergv)
-#define PL_archpat_auto (PL_curinterp->Iarchpat_auto)
-#define PL_argvgv (PL_curinterp->Iargvgv)
-#define PL_argvoutgv (PL_curinterp->Iargvoutgv)
-#define PL_basetime (PL_curinterp->Ibasetime)
-#define PL_beginav (PL_curinterp->Ibeginav)
-#define PL_bytecode_iv_overflows (PL_curinterp->Ibytecode_iv_overflows)
-#define PL_bytecode_obj_list (PL_curinterp->Ibytecode_obj_list)
-#define PL_bytecode_obj_list_fill (PL_curinterp->Ibytecode_obj_list_fill)
-#define PL_bytecode_pv (PL_curinterp->Ibytecode_pv)
-#define PL_bytecode_sv (PL_curinterp->Ibytecode_sv)
-#define PL_cddir (PL_curinterp->Icddir)
-#define PL_compcv (PL_curinterp->Icompcv)
-#define PL_compiling (PL_curinterp->Icompiling)
-#define PL_comppad (PL_curinterp->Icomppad)
-#define PL_comppad_name (PL_curinterp->Icomppad_name)
-#define PL_comppad_name_fill (PL_curinterp->Icomppad_name_fill)
-#define PL_comppad_name_floor (PL_curinterp->Icomppad_name_floor)
-#define PL_copline (PL_curinterp->Icopline)
-#define PL_curcopdb (PL_curinterp->Icurcopdb)
-#define PL_curstname (PL_curinterp->Icurstname)
-#define PL_dbargs (PL_curinterp->Idbargs)
-#define PL_debdelim (PL_curinterp->Idebdelim)
-#define PL_debname (PL_curinterp->Idebname)
-#define PL_debstash (PL_curinterp->Idebstash)
-#define PL_defgv (PL_curinterp->Idefgv)
-#define PL_diehook (PL_curinterp->Idiehook)
-#define PL_dlevel (PL_curinterp->Idlevel)
-#define PL_dlmax (PL_curinterp->Idlmax)
-#define PL_doextract (PL_curinterp->Idoextract)
-#define PL_doswitches (PL_curinterp->Idoswitches)
-#define PL_dowarn (PL_curinterp->Idowarn)
-#define PL_e_script (PL_curinterp->Ie_script)
-#define PL_endav (PL_curinterp->Iendav)
-#define PL_envgv (PL_curinterp->Ienvgv)
-#define PL_errgv (PL_curinterp->Ierrgv)
-#define PL_eval_root (PL_curinterp->Ieval_root)
-#define PL_eval_start (PL_curinterp->Ieval_start)
-#define PL_exitlist (PL_curinterp->Iexitlist)
-#define PL_exitlistlen (PL_curinterp->Iexitlistlen)
-#define PL_fdpid (PL_curinterp->Ifdpid)
-#define PL_filemode (PL_curinterp->Ifilemode)
-#define PL_forkprocess (PL_curinterp->Iforkprocess)
-#define PL_formfeed (PL_curinterp->Iformfeed)
-#define PL_generation (PL_curinterp->Igeneration)
-#define PL_gensym (PL_curinterp->Igensym)
-#define PL_globalstash (PL_curinterp->Iglobalstash)
-#define PL_hintgv (PL_curinterp->Ihintgv)
-#define PL_in_clean_all (PL_curinterp->Iin_clean_all)
-#define PL_in_clean_objs (PL_curinterp->Iin_clean_objs)
-#define PL_incgv (PL_curinterp->Iincgv)
-#define PL_initav (PL_curinterp->Iinitav)
-#define PL_inplace (PL_curinterp->Iinplace)
-#define PL_lastfd (PL_curinterp->Ilastfd)
-#define PL_lastsize (PL_curinterp->Ilastsize)
-#define PL_lastspbase (PL_curinterp->Ilastspbase)
-#define PL_laststatval (PL_curinterp->Ilaststatval)
-#define PL_laststype (PL_curinterp->Ilaststype)
-#define PL_leftgv (PL_curinterp->Ileftgv)
-#define PL_lineary (PL_curinterp->Ilineary)
-#define PL_linestart (PL_curinterp->Ilinestart)
-#define PL_localpatches (PL_curinterp->Ilocalpatches)
-#define PL_main_cv (PL_curinterp->Imain_cv)
-#define PL_main_root (PL_curinterp->Imain_root)
-#define PL_main_start (PL_curinterp->Imain_start)
-#define PL_maxsysfd (PL_curinterp->Imaxsysfd)
-#define PL_mess_sv (PL_curinterp->Imess_sv)
-#define PL_minus_F (PL_curinterp->Iminus_F)
-#define PL_minus_a (PL_curinterp->Iminus_a)
-#define PL_minus_c (PL_curinterp->Iminus_c)
-#define PL_minus_l (PL_curinterp->Iminus_l)
-#define PL_minus_n (PL_curinterp->Iminus_n)
-#define PL_minus_p (PL_curinterp->Iminus_p)
-#define PL_modglobal (PL_curinterp->Imodglobal)
-#define PL_multiline (PL_curinterp->Imultiline)
-#define PL_mystrk (PL_curinterp->Imystrk)
-#define PL_ofmt (PL_curinterp->Iofmt)
-#define PL_oldlastpm (PL_curinterp->Ioldlastpm)
-#define PL_oldname (PL_curinterp->Ioldname)
-#define PL_op_mask (PL_curinterp->Iop_mask)
-#define PL_origargc (PL_curinterp->Iorigargc)
-#define PL_origargv (PL_curinterp->Iorigargv)
-#define PL_origfilename (PL_curinterp->Iorigfilename)
-#define PL_ors (PL_curinterp->Iors)
-#define PL_orslen (PL_curinterp->Iorslen)
-#define PL_parsehook (PL_curinterp->Iparsehook)
-#define PL_patchlevel (PL_curinterp->Ipatchlevel)
-#define PL_pending_ident (PL_curinterp->Ipending_ident)
-#define PL_perl_destruct_level (PL_curinterp->Iperl_destruct_level)
-#define PL_perldb (PL_curinterp->Iperldb)
-#define PL_preambleav (PL_curinterp->Ipreambleav)
-#define PL_preambled (PL_curinterp->Ipreambled)
-#define PL_preprocess (PL_curinterp->Ipreprocess)
-#define PL_profiledata (PL_curinterp->Iprofiledata)
-#define PL_replgv (PL_curinterp->Ireplgv)
-#define PL_rightgv (PL_curinterp->Irightgv)
-#define PL_rsfp (PL_curinterp->Irsfp)
-#define PL_rsfp_filters (PL_curinterp->Irsfp_filters)
-#define PL_sawampersand (PL_curinterp->Isawampersand)
-#define PL_sawstudy (PL_curinterp->Isawstudy)
-#define PL_sawvec (PL_curinterp->Isawvec)
-#define PL_siggv (PL_curinterp->Isiggv)
-#define PL_splitstr (PL_curinterp->Isplitstr)
-#define PL_statusvalue (PL_curinterp->Istatusvalue)
-#define PL_statusvalue_vms (PL_curinterp->Istatusvalue_vms)
-#define PL_stdingv (PL_curinterp->Istdingv)
-#define PL_strchop (PL_curinterp->Istrchop)
-#define PL_strtab (PL_curinterp->Istrtab)
-#define PL_strtab_mutex (PL_curinterp->Istrtab_mutex)
-#define PL_sub_generation (PL_curinterp->Isub_generation)
-#define PL_sublex_info (PL_curinterp->Isublex_info)
-#define PL_sv_arenaroot (PL_curinterp->Isv_arenaroot)
-#define PL_sv_count (PL_curinterp->Isv_count)
-#define PL_sv_objcount (PL_curinterp->Isv_objcount)
-#define PL_sv_root (PL_curinterp->Isv_root)
-#define PL_sys_intern (PL_curinterp->Isys_intern)
-#define PL_tainting (PL_curinterp->Itainting)
-#define PL_threadnum (PL_curinterp->Ithreadnum)
-#define PL_thrsv (PL_curinterp->Ithrsv)
-#define PL_unsafe (PL_curinterp->Iunsafe)
-#define PL_warnhook (PL_curinterp->Iwarnhook)
+/*
+ The following combinations of MULTIPLICITY, USE_THREADS, PERL_OBJECT
+ and PERL_IMPLICIT_CONTEXT are supported:
+ 1) none
+ 2) MULTIPLICITY # supported for compatibility
+ 3) MULTIPLICITY && PERL_IMPLICIT_CONTEXT
+ 4) USE_THREADS && PERL_IMPLICIT_CONTEXT
+ 5) MULTIPLICITY && USE_THREADS && PERL_IMPLICIT_CONTEXT
+ 6) PERL_OBJECT && PERL_IMPLICIT_CONTEXT
+
+ All other combinations of these flags are errors.
+
+ #3, #4, #5, and #6 are supported directly, while #2 is a special
+ case of #3 (supported by redefining vTHX appropriately).
+*/
+
+#if defined(MULTIPLICITY)
+/* cases 2, 3 and 5 above */
+
+# if defined(PERL_IMPLICIT_CONTEXT)
+# define vTHX aTHX
+# else
+# define vTHX PERL_GET_INTERP
+# endif
+
+#define PL_Sv (vTHX->TSv)
+#define PL_Xpv (vTHX->TXpv)
+#define PL_av_fetch_sv (vTHX->Tav_fetch_sv)
+#define PL_bodytarget (vTHX->Tbodytarget)
+#define PL_bostr (vTHX->Tbostr)
+#define PL_chopset (vTHX->Tchopset)
+#define PL_colors (vTHX->Tcolors)
+#define PL_colorset (vTHX->Tcolorset)
+#define PL_curcop (vTHX->Tcurcop)
+#define PL_curpad (vTHX->Tcurpad)
+#define PL_curpm (vTHX->Tcurpm)
+#define PL_curstack (vTHX->Tcurstack)
+#define PL_curstackinfo (vTHX->Tcurstackinfo)
+#define PL_curstash (vTHX->Tcurstash)
+#define PL_defoutgv (vTHX->Tdefoutgv)
+#define PL_defstash (vTHX->Tdefstash)
+#define PL_delaymagic (vTHX->Tdelaymagic)
+#define PL_dirty (vTHX->Tdirty)
+#define PL_dumpindent (vTHX->Tdumpindent)
+#define PL_efloatbuf (vTHX->Tefloatbuf)
+#define PL_efloatsize (vTHX->Tefloatsize)
+#define PL_errors (vTHX->Terrors)
+#define PL_extralen (vTHX->Textralen)
+#define PL_firstgv (vTHX->Tfirstgv)
+#define PL_formtarget (vTHX->Tformtarget)
+#define PL_hv_fetch_ent_mh (vTHX->Thv_fetch_ent_mh)
+#define PL_hv_fetch_sv (vTHX->Thv_fetch_sv)
+#define PL_in_eval (vTHX->Tin_eval)
+#define PL_last_in_gv (vTHX->Tlast_in_gv)
+#define PL_lastgotoprobe (vTHX->Tlastgotoprobe)
+#define PL_lastscream (vTHX->Tlastscream)
+#define PL_localizing (vTHX->Tlocalizing)
+#define PL_mainstack (vTHX->Tmainstack)
+#define PL_markstack (vTHX->Tmarkstack)
+#define PL_markstack_max (vTHX->Tmarkstack_max)
+#define PL_markstack_ptr (vTHX->Tmarkstack_ptr)
+#define PL_maxscream (vTHX->Tmaxscream)
+#define PL_modcount (vTHX->Tmodcount)
+#define PL_na (vTHX->Tna)
+#define PL_nrs (vTHX->Tnrs)
+#define PL_ofs_sv (vTHX->Tofs_sv)
+#define PL_op (vTHX->Top)
+#define PL_opsave (vTHX->Topsave)
+#define PL_protect (vTHX->Tprotect)
+#define PL_reg_call_cc (vTHX->Treg_call_cc)
+#define PL_reg_curpm (vTHX->Treg_curpm)
+#define PL_reg_eval_set (vTHX->Treg_eval_set)
+#define PL_reg_flags (vTHX->Treg_flags)
+#define PL_reg_ganch (vTHX->Treg_ganch)
+#define PL_reg_leftiter (vTHX->Treg_leftiter)
+#define PL_reg_magic (vTHX->Treg_magic)
+#define PL_reg_maxiter (vTHX->Treg_maxiter)
+#define PL_reg_oldcurpm (vTHX->Treg_oldcurpm)
+#define PL_reg_oldpos (vTHX->Treg_oldpos)
+#define PL_reg_oldsaved (vTHX->Treg_oldsaved)
+#define PL_reg_oldsavedlen (vTHX->Treg_oldsavedlen)
+#define PL_reg_poscache (vTHX->Treg_poscache)
+#define PL_reg_poscache_size (vTHX->Treg_poscache_size)
+#define PL_reg_re (vTHX->Treg_re)
+#define PL_reg_start_tmp (vTHX->Treg_start_tmp)
+#define PL_reg_start_tmpl (vTHX->Treg_start_tmpl)
+#define PL_reg_starttry (vTHX->Treg_starttry)
+#define PL_reg_sv (vTHX->Treg_sv)
+#define PL_reg_whilem_seen (vTHX->Treg_whilem_seen)
+#define PL_regbol (vTHX->Tregbol)
+#define PL_regcc (vTHX->Tregcc)
+#define PL_regcode (vTHX->Tregcode)
+#define PL_regcomp_parse (vTHX->Tregcomp_parse)
+#define PL_regcomp_rx (vTHX->Tregcomp_rx)
+#define PL_regcompp (vTHX->Tregcompp)
+#define PL_regdata (vTHX->Tregdata)
+#define PL_regdummy (vTHX->Tregdummy)
+#define PL_regendp (vTHX->Tregendp)
+#define PL_regeol (vTHX->Tregeol)
+#define PL_regexecp (vTHX->Tregexecp)
+#define PL_regflags (vTHX->Tregflags)
+#define PL_regfree (vTHX->Tregfree)
+#define PL_regindent (vTHX->Tregindent)
+#define PL_reginput (vTHX->Treginput)
+#define PL_regint_start (vTHX->Tregint_start)
+#define PL_regint_string (vTHX->Tregint_string)
+#define PL_reginterp_cnt (vTHX->Treginterp_cnt)
+#define PL_reglastparen (vTHX->Treglastparen)
+#define PL_regnarrate (vTHX->Tregnarrate)
+#define PL_regnaughty (vTHX->Tregnaughty)
+#define PL_regnpar (vTHX->Tregnpar)
+#define PL_regprecomp (vTHX->Tregprecomp)
+#define PL_regprev (vTHX->Tregprev)
+#define PL_regprogram (vTHX->Tregprogram)
+#define PL_regsawback (vTHX->Tregsawback)
+#define PL_regseen (vTHX->Tregseen)
+#define PL_regsize (vTHX->Tregsize)
+#define PL_regstartp (vTHX->Tregstartp)
+#define PL_regtill (vTHX->Tregtill)
+#define PL_regxend (vTHX->Tregxend)
+#define PL_restartop (vTHX->Trestartop)
+#define PL_retstack (vTHX->Tretstack)
+#define PL_retstack_ix (vTHX->Tretstack_ix)
+#define PL_retstack_max (vTHX->Tretstack_max)
+#define PL_rs (vTHX->Trs)
+#define PL_savestack (vTHX->Tsavestack)
+#define PL_savestack_ix (vTHX->Tsavestack_ix)
+#define PL_savestack_max (vTHX->Tsavestack_max)
+#define PL_scopestack (vTHX->Tscopestack)
+#define PL_scopestack_ix (vTHX->Tscopestack_ix)
+#define PL_scopestack_max (vTHX->Tscopestack_max)
+#define PL_screamfirst (vTHX->Tscreamfirst)
+#define PL_screamnext (vTHX->Tscreamnext)
+#define PL_secondgv (vTHX->Tsecondgv)
+#define PL_seen_evals (vTHX->Tseen_evals)
+#define PL_seen_zerolen (vTHX->Tseen_zerolen)
+#define PL_sortcop (vTHX->Tsortcop)
+#define PL_sortcxix (vTHX->Tsortcxix)
+#define PL_sortstash (vTHX->Tsortstash)
+#define PL_stack_base (vTHX->Tstack_base)
+#define PL_stack_max (vTHX->Tstack_max)
+#define PL_stack_sp (vTHX->Tstack_sp)
+#define PL_start_env (vTHX->Tstart_env)
+#define PL_statbuf (vTHX->Tstatbuf)
+#define PL_statcache (vTHX->Tstatcache)
+#define PL_statgv (vTHX->Tstatgv)
+#define PL_statname (vTHX->Tstatname)
+#define PL_tainted (vTHX->Ttainted)
+#define PL_timesbuf (vTHX->Ttimesbuf)
+#define PL_tmps_floor (vTHX->Ttmps_floor)
+#define PL_tmps_ix (vTHX->Ttmps_ix)
+#define PL_tmps_max (vTHX->Ttmps_max)
+#define PL_tmps_stack (vTHX->Ttmps_stack)
+#define PL_top_env (vTHX->Ttop_env)
+#define PL_toptarget (vTHX->Ttoptarget)
+#define PL_watchaddr (vTHX->Twatchaddr)
+#define PL_watchok (vTHX->Twatchok)
+
+# if defined(PERL_OBJECT)
+# include "error: PERL_OBJECT + MULTIPLICITY don't go together"
+# endif
+
+# if defined(USE_THREADS)
+/* case 5 above */
+
+#define PL_Argv (PERL_GET_INTERP->IArgv)
+#define PL_Cmd (PERL_GET_INTERP->ICmd)
+#define PL_DBcv (PERL_GET_INTERP->IDBcv)
+#define PL_DBgv (PERL_GET_INTERP->IDBgv)
+#define PL_DBline (PERL_GET_INTERP->IDBline)
+#define PL_DBsignal (PERL_GET_INTERP->IDBsignal)
+#define PL_DBsingle (PERL_GET_INTERP->IDBsingle)
+#define PL_DBsub (PERL_GET_INTERP->IDBsub)
+#define PL_DBtrace (PERL_GET_INTERP->IDBtrace)
+#define PL_Dir (PERL_GET_INTERP->IDir)
+#define PL_Env (PERL_GET_INTERP->IEnv)
+#define PL_LIO (PERL_GET_INTERP->ILIO)
+#define PL_Mem (PERL_GET_INTERP->IMem)
+#define PL_MemParse (PERL_GET_INTERP->IMemParse)
+#define PL_MemShared (PERL_GET_INTERP->IMemShared)
+#define PL_Proc (PERL_GET_INTERP->IProc)
+#define PL_Sock (PERL_GET_INTERP->ISock)
+#define PL_StdIO (PERL_GET_INTERP->IStdIO)
+#define PL_amagic_generation (PERL_GET_INTERP->Iamagic_generation)
+#define PL_an (PERL_GET_INTERP->Ian)
+#define PL_argvgv (PERL_GET_INTERP->Iargvgv)
+#define PL_argvout_stack (PERL_GET_INTERP->Iargvout_stack)
+#define PL_argvoutgv (PERL_GET_INTERP->Iargvoutgv)
+#define PL_basetime (PERL_GET_INTERP->Ibasetime)
+#define PL_beginav (PERL_GET_INTERP->Ibeginav)
+#define PL_beginav_save (PERL_GET_INTERP->Ibeginav_save)
+#define PL_bitcount (PERL_GET_INTERP->Ibitcount)
+#define PL_bufend (PERL_GET_INTERP->Ibufend)
+#define PL_bufptr (PERL_GET_INTERP->Ibufptr)
+#define PL_checkav (PERL_GET_INTERP->Icheckav)
+#define PL_collation_ix (PERL_GET_INTERP->Icollation_ix)
+#define PL_collation_name (PERL_GET_INTERP->Icollation_name)
+#define PL_collation_standard (PERL_GET_INTERP->Icollation_standard)
+#define PL_collxfrm_base (PERL_GET_INTERP->Icollxfrm_base)
+#define PL_collxfrm_mult (PERL_GET_INTERP->Icollxfrm_mult)
+#define PL_compcv (PERL_GET_INTERP->Icompcv)
+#define PL_compiling (PERL_GET_INTERP->Icompiling)
+#define PL_comppad (PERL_GET_INTERP->Icomppad)
+#define PL_comppad_name (PERL_GET_INTERP->Icomppad_name)
+#define PL_comppad_name_fill (PERL_GET_INTERP->Icomppad_name_fill)
+#define PL_comppad_name_floor (PERL_GET_INTERP->Icomppad_name_floor)
+#define PL_cop_seqmax (PERL_GET_INTERP->Icop_seqmax)
+#define PL_copline (PERL_GET_INTERP->Icopline)
+#define PL_cred_mutex (PERL_GET_INTERP->Icred_mutex)
+#define PL_cryptseen (PERL_GET_INTERP->Icryptseen)
+#define PL_cshlen (PERL_GET_INTERP->Icshlen)
+#define PL_cshname (PERL_GET_INTERP->Icshname)
+#define PL_curcopdb (PERL_GET_INTERP->Icurcopdb)
+#define PL_curstname (PERL_GET_INTERP->Icurstname)
+#define PL_curthr (PERL_GET_INTERP->Icurthr)
+#define PL_dbargs (PERL_GET_INTERP->Idbargs)
+#define PL_debstash (PERL_GET_INTERP->Idebstash)
+#define PL_debug (PERL_GET_INTERP->Idebug)
+#define PL_defgv (PERL_GET_INTERP->Idefgv)
+#define PL_diehook (PERL_GET_INTERP->Idiehook)
+#define PL_doextract (PERL_GET_INTERP->Idoextract)
+#define PL_doswitches (PERL_GET_INTERP->Idoswitches)
+#define PL_dowarn (PERL_GET_INTERP->Idowarn)
+#define PL_e_script (PERL_GET_INTERP->Ie_script)
+#define PL_egid (PERL_GET_INTERP->Iegid)
+#define PL_endav (PERL_GET_INTERP->Iendav)
+#define PL_envgv (PERL_GET_INTERP->Ienvgv)
+#define PL_errgv (PERL_GET_INTERP->Ierrgv)
+#define PL_error_count (PERL_GET_INTERP->Ierror_count)
+#define PL_euid (PERL_GET_INTERP->Ieuid)
+#define PL_eval_cond (PERL_GET_INTERP->Ieval_cond)
+#define PL_eval_mutex (PERL_GET_INTERP->Ieval_mutex)
+#define PL_eval_owner (PERL_GET_INTERP->Ieval_owner)
+#define PL_eval_root (PERL_GET_INTERP->Ieval_root)
+#define PL_eval_start (PERL_GET_INTERP->Ieval_start)
+#define PL_evalseq (PERL_GET_INTERP->Ievalseq)
+#define PL_exit_flags (PERL_GET_INTERP->Iexit_flags)
+#define PL_exitlist (PERL_GET_INTERP->Iexitlist)
+#define PL_exitlistlen (PERL_GET_INTERP->Iexitlistlen)
+#define PL_expect (PERL_GET_INTERP->Iexpect)
+#define PL_fdpid (PERL_GET_INTERP->Ifdpid)
+#define PL_fdpid_mutex (PERL_GET_INTERP->Ifdpid_mutex)
+#define PL_filemode (PERL_GET_INTERP->Ifilemode)
+#define PL_forkprocess (PERL_GET_INTERP->Iforkprocess)
+#define PL_formfeed (PERL_GET_INTERP->Iformfeed)
+#define PL_generation (PERL_GET_INTERP->Igeneration)
+#define PL_gensym (PERL_GET_INTERP->Igensym)
+#define PL_gid (PERL_GET_INTERP->Igid)
+#define PL_glob_index (PERL_GET_INTERP->Iglob_index)
+#define PL_globalstash (PERL_GET_INTERP->Iglobalstash)
+#define PL_he_arenaroot (PERL_GET_INTERP->Ihe_arenaroot)
+#define PL_he_root (PERL_GET_INTERP->Ihe_root)
+#define PL_hintgv (PERL_GET_INTERP->Ihintgv)
+#define PL_hints (PERL_GET_INTERP->Ihints)
+#define PL_in_clean_all (PERL_GET_INTERP->Iin_clean_all)
+#define PL_in_clean_objs (PERL_GET_INTERP->Iin_clean_objs)
+#define PL_in_my (PERL_GET_INTERP->Iin_my)
+#define PL_in_my_stash (PERL_GET_INTERP->Iin_my_stash)
+#define PL_incgv (PERL_GET_INTERP->Iincgv)
+#define PL_initav (PERL_GET_INTERP->Iinitav)
+#define PL_inplace (PERL_GET_INTERP->Iinplace)
+#define PL_last_lop (PERL_GET_INTERP->Ilast_lop)
+#define PL_last_lop_op (PERL_GET_INTERP->Ilast_lop_op)
+#define PL_last_swash_hv (PERL_GET_INTERP->Ilast_swash_hv)
+#define PL_last_swash_key (PERL_GET_INTERP->Ilast_swash_key)
+#define PL_last_swash_klen (PERL_GET_INTERP->Ilast_swash_klen)
+#define PL_last_swash_slen (PERL_GET_INTERP->Ilast_swash_slen)
+#define PL_last_swash_tmps (PERL_GET_INTERP->Ilast_swash_tmps)
+#define PL_last_uni (PERL_GET_INTERP->Ilast_uni)
+#define PL_lastfd (PERL_GET_INTERP->Ilastfd)
+#define PL_laststatval (PERL_GET_INTERP->Ilaststatval)
+#define PL_laststype (PERL_GET_INTERP->Ilaststype)
+#define PL_lex_brackets (PERL_GET_INTERP->Ilex_brackets)
+#define PL_lex_brackstack (PERL_GET_INTERP->Ilex_brackstack)
+#define PL_lex_casemods (PERL_GET_INTERP->Ilex_casemods)
+#define PL_lex_casestack (PERL_GET_INTERP->Ilex_casestack)
+#define PL_lex_defer (PERL_GET_INTERP->Ilex_defer)
+#define PL_lex_dojoin (PERL_GET_INTERP->Ilex_dojoin)
+#define PL_lex_expect (PERL_GET_INTERP->Ilex_expect)
+#define PL_lex_formbrack (PERL_GET_INTERP->Ilex_formbrack)
+#define PL_lex_inpat (PERL_GET_INTERP->Ilex_inpat)
+#define PL_lex_inwhat (PERL_GET_INTERP->Ilex_inwhat)
+#define PL_lex_op (PERL_GET_INTERP->Ilex_op)
+#define PL_lex_repl (PERL_GET_INTERP->Ilex_repl)
+#define PL_lex_starts (PERL_GET_INTERP->Ilex_starts)
+#define PL_lex_state (PERL_GET_INTERP->Ilex_state)
+#define PL_lex_stuff (PERL_GET_INTERP->Ilex_stuff)
+#define PL_lineary (PERL_GET_INTERP->Ilineary)
+#define PL_linestart (PERL_GET_INTERP->Ilinestart)
+#define PL_linestr (PERL_GET_INTERP->Ilinestr)
+#define PL_localpatches (PERL_GET_INTERP->Ilocalpatches)
+#define PL_main_cv (PERL_GET_INTERP->Imain_cv)
+#define PL_main_root (PERL_GET_INTERP->Imain_root)
+#define PL_main_start (PERL_GET_INTERP->Imain_start)
+#define PL_max_intro_pending (PERL_GET_INTERP->Imax_intro_pending)
+#define PL_maxo (PERL_GET_INTERP->Imaxo)
+#define PL_maxsysfd (PERL_GET_INTERP->Imaxsysfd)
+#define PL_mess_sv (PERL_GET_INTERP->Imess_sv)
+#define PL_min_intro_pending (PERL_GET_INTERP->Imin_intro_pending)
+#define PL_minus_F (PERL_GET_INTERP->Iminus_F)
+#define PL_minus_a (PERL_GET_INTERP->Iminus_a)
+#define PL_minus_c (PERL_GET_INTERP->Iminus_c)
+#define PL_minus_l (PERL_GET_INTERP->Iminus_l)
+#define PL_minus_n (PERL_GET_INTERP->Iminus_n)
+#define PL_minus_p (PERL_GET_INTERP->Iminus_p)
+#define PL_modglobal (PERL_GET_INTERP->Imodglobal)
+#define PL_multi_close (PERL_GET_INTERP->Imulti_close)
+#define PL_multi_end (PERL_GET_INTERP->Imulti_end)
+#define PL_multi_open (PERL_GET_INTERP->Imulti_open)
+#define PL_multi_start (PERL_GET_INTERP->Imulti_start)
+#define PL_multiline (PERL_GET_INTERP->Imultiline)
+#define PL_nexttoke (PERL_GET_INTERP->Inexttoke)
+#define PL_nexttype (PERL_GET_INTERP->Inexttype)
+#define PL_nextval (PERL_GET_INTERP->Inextval)
+#define PL_nice_chunk (PERL_GET_INTERP->Inice_chunk)
+#define PL_nice_chunk_size (PERL_GET_INTERP->Inice_chunk_size)
+#define PL_nomemok (PERL_GET_INTERP->Inomemok)
+#define PL_nthreads (PERL_GET_INTERP->Inthreads)
+#define PL_nthreads_cond (PERL_GET_INTERP->Inthreads_cond)
+#define PL_nullstash (PERL_GET_INTERP->Inullstash)
+#define PL_numeric_local (PERL_GET_INTERP->Inumeric_local)
+#define PL_numeric_name (PERL_GET_INTERP->Inumeric_name)
+#define PL_numeric_radix (PERL_GET_INTERP->Inumeric_radix)
+#define PL_numeric_standard (PERL_GET_INTERP->Inumeric_standard)
+#define PL_ofmt (PERL_GET_INTERP->Iofmt)
+#define PL_oldbufptr (PERL_GET_INTERP->Ioldbufptr)
+#define PL_oldname (PERL_GET_INTERP->Ioldname)
+#define PL_oldoldbufptr (PERL_GET_INTERP->Ioldoldbufptr)
+#define PL_op_mask (PERL_GET_INTERP->Iop_mask)
+#define PL_op_seqmax (PERL_GET_INTERP->Iop_seqmax)
+#define PL_origalen (PERL_GET_INTERP->Iorigalen)
+#define PL_origargc (PERL_GET_INTERP->Iorigargc)
+#define PL_origargv (PERL_GET_INTERP->Iorigargv)
+#define PL_origenviron (PERL_GET_INTERP->Iorigenviron)
+#define PL_origfilename (PERL_GET_INTERP->Iorigfilename)
+#define PL_ors_sv (PERL_GET_INTERP->Iors_sv)
+#define PL_osname (PERL_GET_INTERP->Iosname)
+#define PL_pad_reset_pending (PERL_GET_INTERP->Ipad_reset_pending)
+#define PL_padix (PERL_GET_INTERP->Ipadix)
+#define PL_padix_floor (PERL_GET_INTERP->Ipadix_floor)
+#define PL_patchlevel (PERL_GET_INTERP->Ipatchlevel)
+#define PL_pending_ident (PERL_GET_INTERP->Ipending_ident)
+#define PL_perl_destruct_level (PERL_GET_INTERP->Iperl_destruct_level)
+#define PL_perldb (PERL_GET_INTERP->Iperldb)
+#define PL_pidstatus (PERL_GET_INTERP->Ipidstatus)
+#define PL_preambleav (PERL_GET_INTERP->Ipreambleav)
+#define PL_preambled (PERL_GET_INTERP->Ipreambled)
+#define PL_preprocess (PERL_GET_INTERP->Ipreprocess)
+#define PL_profiledata (PERL_GET_INTERP->Iprofiledata)
+#define PL_psig_name (PERL_GET_INTERP->Ipsig_name)
+#define PL_psig_pend (PERL_GET_INTERP->Ipsig_pend)
+#define PL_psig_ptr (PERL_GET_INTERP->Ipsig_ptr)
+#define PL_ptr_table (PERL_GET_INTERP->Iptr_table)
+#define PL_replgv (PERL_GET_INTERP->Ireplgv)
+#define PL_rsfp (PERL_GET_INTERP->Irsfp)
+#define PL_rsfp_filters (PERL_GET_INTERP->Irsfp_filters)
+#define PL_runops (PERL_GET_INTERP->Irunops)
+#define PL_sawampersand (PERL_GET_INTERP->Isawampersand)
+#define PL_sh_path (PERL_GET_INTERP->Ish_path)
+#define PL_sig_pending (PERL_GET_INTERP->Isig_pending)
+#define PL_sighandlerp (PERL_GET_INTERP->Isighandlerp)
+#define PL_splitstr (PERL_GET_INTERP->Isplitstr)
+#define PL_srand_called (PERL_GET_INTERP->Isrand_called)
+#define PL_statusvalue (PERL_GET_INTERP->Istatusvalue)
+#define PL_statusvalue_vms (PERL_GET_INTERP->Istatusvalue_vms)
+#define PL_stderrgv (PERL_GET_INTERP->Istderrgv)
+#define PL_stdingv (PERL_GET_INTERP->Istdingv)
+#define PL_strtab (PERL_GET_INTERP->Istrtab)
+#define PL_strtab_mutex (PERL_GET_INTERP->Istrtab_mutex)
+#define PL_sub_generation (PERL_GET_INTERP->Isub_generation)
+#define PL_sublex_info (PERL_GET_INTERP->Isublex_info)
+#define PL_subline (PERL_GET_INTERP->Isubline)
+#define PL_subname (PERL_GET_INTERP->Isubname)
+#define PL_sv_arenaroot (PERL_GET_INTERP->Isv_arenaroot)
+#define PL_sv_count (PERL_GET_INTERP->Isv_count)
+#define PL_sv_lock_mutex (PERL_GET_INTERP->Isv_lock_mutex)
+#define PL_sv_mutex (PERL_GET_INTERP->Isv_mutex)
+#define PL_sv_no (PERL_GET_INTERP->Isv_no)
+#define PL_sv_objcount (PERL_GET_INTERP->Isv_objcount)
+#define PL_sv_root (PERL_GET_INTERP->Isv_root)
+#define PL_sv_undef (PERL_GET_INTERP->Isv_undef)
+#define PL_sv_yes (PERL_GET_INTERP->Isv_yes)
+#define PL_svref_mutex (PERL_GET_INTERP->Isvref_mutex)
+#define PL_sys_intern (PERL_GET_INTERP->Isys_intern)
+#define PL_tainting (PERL_GET_INTERP->Itainting)
+#define PL_threadnum (PERL_GET_INTERP->Ithreadnum)
+#define PL_threads_mutex (PERL_GET_INTERP->Ithreads_mutex)
+#define PL_threadsv_names (PERL_GET_INTERP->Ithreadsv_names)
+#define PL_thrsv (PERL_GET_INTERP->Ithrsv)
+#define PL_tokenbuf (PERL_GET_INTERP->Itokenbuf)
+#define PL_uid (PERL_GET_INTERP->Iuid)
+#define PL_unsafe (PERL_GET_INTERP->Iunsafe)
+#define PL_utf8_alnum (PERL_GET_INTERP->Iutf8_alnum)
+#define PL_utf8_alnumc (PERL_GET_INTERP->Iutf8_alnumc)
+#define PL_utf8_alpha (PERL_GET_INTERP->Iutf8_alpha)
+#define PL_utf8_ascii (PERL_GET_INTERP->Iutf8_ascii)
+#define PL_utf8_cntrl (PERL_GET_INTERP->Iutf8_cntrl)
+#define PL_utf8_digit (PERL_GET_INTERP->Iutf8_digit)
+#define PL_utf8_graph (PERL_GET_INTERP->Iutf8_graph)
+#define PL_utf8_lower (PERL_GET_INTERP->Iutf8_lower)
+#define PL_utf8_mark (PERL_GET_INTERP->Iutf8_mark)
+#define PL_utf8_print (PERL_GET_INTERP->Iutf8_print)
+#define PL_utf8_punct (PERL_GET_INTERP->Iutf8_punct)
+#define PL_utf8_space (PERL_GET_INTERP->Iutf8_space)
+#define PL_utf8_tolower (PERL_GET_INTERP->Iutf8_tolower)
+#define PL_utf8_totitle (PERL_GET_INTERP->Iutf8_totitle)
+#define PL_utf8_toupper (PERL_GET_INTERP->Iutf8_toupper)
+#define PL_utf8_upper (PERL_GET_INTERP->Iutf8_upper)
+#define PL_utf8_xdigit (PERL_GET_INTERP->Iutf8_xdigit)
+#define PL_uudmap (PERL_GET_INTERP->Iuudmap)
+#define PL_warnhook (PERL_GET_INTERP->Iwarnhook)
+#define PL_widesyscalls (PERL_GET_INTERP->Iwidesyscalls)
+#define PL_xiv_arenaroot (PERL_GET_INTERP->Ixiv_arenaroot)
+#define PL_xiv_root (PERL_GET_INTERP->Ixiv_root)
+#define PL_xnv_arenaroot (PERL_GET_INTERP->Ixnv_arenaroot)
+#define PL_xnv_root (PERL_GET_INTERP->Ixnv_root)
+#define PL_xpv_arenaroot (PERL_GET_INTERP->Ixpv_arenaroot)
+#define PL_xpv_root (PERL_GET_INTERP->Ixpv_root)
+#define PL_xpvav_arenaroot (PERL_GET_INTERP->Ixpvav_arenaroot)
+#define PL_xpvav_root (PERL_GET_INTERP->Ixpvav_root)
+#define PL_xpvbm_arenaroot (PERL_GET_INTERP->Ixpvbm_arenaroot)
+#define PL_xpvbm_root (PERL_GET_INTERP->Ixpvbm_root)
+#define PL_xpvcv_arenaroot (PERL_GET_INTERP->Ixpvcv_arenaroot)
+#define PL_xpvcv_root (PERL_GET_INTERP->Ixpvcv_root)
+#define PL_xpvhv_arenaroot (PERL_GET_INTERP->Ixpvhv_arenaroot)
+#define PL_xpvhv_root (PERL_GET_INTERP->Ixpvhv_root)
+#define PL_xpviv_arenaroot (PERL_GET_INTERP->Ixpviv_arenaroot)
+#define PL_xpviv_root (PERL_GET_INTERP->Ixpviv_root)
+#define PL_xpvlv_arenaroot (PERL_GET_INTERP->Ixpvlv_arenaroot)
+#define PL_xpvlv_root (PERL_GET_INTERP->Ixpvlv_root)
+#define PL_xpvmg_arenaroot (PERL_GET_INTERP->Ixpvmg_arenaroot)
+#define PL_xpvmg_root (PERL_GET_INTERP->Ixpvmg_root)
+#define PL_xpvnv_arenaroot (PERL_GET_INTERP->Ixpvnv_arenaroot)
+#define PL_xpvnv_root (PERL_GET_INTERP->Ixpvnv_root)
+#define PL_xrv_arenaroot (PERL_GET_INTERP->Ixrv_arenaroot)
+#define PL_xrv_root (PERL_GET_INTERP->Ixrv_root)
+#define PL_yychar (PERL_GET_INTERP->Iyychar)
+#define PL_yydebug (PERL_GET_INTERP->Iyydebug)
+#define PL_yyerrflag (PERL_GET_INTERP->Iyyerrflag)
+#define PL_yylval (PERL_GET_INTERP->Iyylval)
+#define PL_yynerrs (PERL_GET_INTERP->Iyynerrs)
+#define PL_yyval (PERL_GET_INTERP->Iyyval)
+
+# else /* !USE_THREADS */
+/* cases 2 and 3 above */
+
+#define PL_Argv (vTHX->IArgv)
+#define PL_Cmd (vTHX->ICmd)
+#define PL_DBcv (vTHX->IDBcv)
+#define PL_DBgv (vTHX->IDBgv)
+#define PL_DBline (vTHX->IDBline)
+#define PL_DBsignal (vTHX->IDBsignal)
+#define PL_DBsingle (vTHX->IDBsingle)
+#define PL_DBsub (vTHX->IDBsub)
+#define PL_DBtrace (vTHX->IDBtrace)
+#define PL_Dir (vTHX->IDir)
+#define PL_Env (vTHX->IEnv)
+#define PL_LIO (vTHX->ILIO)
+#define PL_Mem (vTHX->IMem)
+#define PL_MemParse (vTHX->IMemParse)
+#define PL_MemShared (vTHX->IMemShared)
+#define PL_Proc (vTHX->IProc)
+#define PL_Sock (vTHX->ISock)
+#define PL_StdIO (vTHX->IStdIO)
+#define PL_amagic_generation (vTHX->Iamagic_generation)
+#define PL_an (vTHX->Ian)
+#define PL_argvgv (vTHX->Iargvgv)
+#define PL_argvout_stack (vTHX->Iargvout_stack)
+#define PL_argvoutgv (vTHX->Iargvoutgv)
+#define PL_basetime (vTHX->Ibasetime)
+#define PL_beginav (vTHX->Ibeginav)
+#define PL_beginav_save (vTHX->Ibeginav_save)
+#define PL_bitcount (vTHX->Ibitcount)
+#define PL_bufend (vTHX->Ibufend)
+#define PL_bufptr (vTHX->Ibufptr)
+#define PL_checkav (vTHX->Icheckav)
+#define PL_collation_ix (vTHX->Icollation_ix)
+#define PL_collation_name (vTHX->Icollation_name)
+#define PL_collation_standard (vTHX->Icollation_standard)
+#define PL_collxfrm_base (vTHX->Icollxfrm_base)
+#define PL_collxfrm_mult (vTHX->Icollxfrm_mult)
+#define PL_compcv (vTHX->Icompcv)
+#define PL_compiling (vTHX->Icompiling)
+#define PL_comppad (vTHX->Icomppad)
+#define PL_comppad_name (vTHX->Icomppad_name)
+#define PL_comppad_name_fill (vTHX->Icomppad_name_fill)
+#define PL_comppad_name_floor (vTHX->Icomppad_name_floor)
+#define PL_cop_seqmax (vTHX->Icop_seqmax)
+#define PL_copline (vTHX->Icopline)
+#define PL_cred_mutex (vTHX->Icred_mutex)
+#define PL_cryptseen (vTHX->Icryptseen)
+#define PL_cshlen (vTHX->Icshlen)
+#define PL_cshname (vTHX->Icshname)
+#define PL_curcopdb (vTHX->Icurcopdb)
+#define PL_curstname (vTHX->Icurstname)
+#define PL_curthr (vTHX->Icurthr)
+#define PL_dbargs (vTHX->Idbargs)
+#define PL_debstash (vTHX->Idebstash)
+#define PL_debug (vTHX->Idebug)
+#define PL_defgv (vTHX->Idefgv)
+#define PL_diehook (vTHX->Idiehook)
+#define PL_doextract (vTHX->Idoextract)
+#define PL_doswitches (vTHX->Idoswitches)
+#define PL_dowarn (vTHX->Idowarn)
+#define PL_e_script (vTHX->Ie_script)
+#define PL_egid (vTHX->Iegid)
+#define PL_endav (vTHX->Iendav)
+#define PL_envgv (vTHX->Ienvgv)
+#define PL_errgv (vTHX->Ierrgv)
+#define PL_error_count (vTHX->Ierror_count)
+#define PL_euid (vTHX->Ieuid)
+#define PL_eval_cond (vTHX->Ieval_cond)
+#define PL_eval_mutex (vTHX->Ieval_mutex)
+#define PL_eval_owner (vTHX->Ieval_owner)
+#define PL_eval_root (vTHX->Ieval_root)
+#define PL_eval_start (vTHX->Ieval_start)
+#define PL_evalseq (vTHX->Ievalseq)
+#define PL_exit_flags (vTHX->Iexit_flags)
+#define PL_exitlist (vTHX->Iexitlist)
+#define PL_exitlistlen (vTHX->Iexitlistlen)
+#define PL_expect (vTHX->Iexpect)
+#define PL_fdpid (vTHX->Ifdpid)
+#define PL_fdpid_mutex (vTHX->Ifdpid_mutex)
+#define PL_filemode (vTHX->Ifilemode)
+#define PL_forkprocess (vTHX->Iforkprocess)
+#define PL_formfeed (vTHX->Iformfeed)
+#define PL_generation (vTHX->Igeneration)
+#define PL_gensym (vTHX->Igensym)
+#define PL_gid (vTHX->Igid)
+#define PL_glob_index (vTHX->Iglob_index)
+#define PL_globalstash (vTHX->Iglobalstash)
+#define PL_he_arenaroot (vTHX->Ihe_arenaroot)
+#define PL_he_root (vTHX->Ihe_root)
+#define PL_hintgv (vTHX->Ihintgv)
+#define PL_hints (vTHX->Ihints)
+#define PL_in_clean_all (vTHX->Iin_clean_all)
+#define PL_in_clean_objs (vTHX->Iin_clean_objs)
+#define PL_in_my (vTHX->Iin_my)
+#define PL_in_my_stash (vTHX->Iin_my_stash)
+#define PL_incgv (vTHX->Iincgv)
+#define PL_initav (vTHX->Iinitav)
+#define PL_inplace (vTHX->Iinplace)
+#define PL_last_lop (vTHX->Ilast_lop)
+#define PL_last_lop_op (vTHX->Ilast_lop_op)
+#define PL_last_swash_hv (vTHX->Ilast_swash_hv)
+#define PL_last_swash_key (vTHX->Ilast_swash_key)
+#define PL_last_swash_klen (vTHX->Ilast_swash_klen)
+#define PL_last_swash_slen (vTHX->Ilast_swash_slen)
+#define PL_last_swash_tmps (vTHX->Ilast_swash_tmps)
+#define PL_last_uni (vTHX->Ilast_uni)
+#define PL_lastfd (vTHX->Ilastfd)
+#define PL_laststatval (vTHX->Ilaststatval)
+#define PL_laststype (vTHX->Ilaststype)
+#define PL_lex_brackets (vTHX->Ilex_brackets)
+#define PL_lex_brackstack (vTHX->Ilex_brackstack)
+#define PL_lex_casemods (vTHX->Ilex_casemods)
+#define PL_lex_casestack (vTHX->Ilex_casestack)
+#define PL_lex_defer (vTHX->Ilex_defer)
+#define PL_lex_dojoin (vTHX->Ilex_dojoin)
+#define PL_lex_expect (vTHX->Ilex_expect)
+#define PL_lex_formbrack (vTHX->Ilex_formbrack)
+#define PL_lex_inpat (vTHX->Ilex_inpat)
+#define PL_lex_inwhat (vTHX->Ilex_inwhat)
+#define PL_lex_op (vTHX->Ilex_op)
+#define PL_lex_repl (vTHX->Ilex_repl)
+#define PL_lex_starts (vTHX->Ilex_starts)
+#define PL_lex_state (vTHX->Ilex_state)
+#define PL_lex_stuff (vTHX->Ilex_stuff)
+#define PL_lineary (vTHX->Ilineary)
+#define PL_linestart (vTHX->Ilinestart)
+#define PL_linestr (vTHX->Ilinestr)
+#define PL_localpatches (vTHX->Ilocalpatches)
+#define PL_main_cv (vTHX->Imain_cv)
+#define PL_main_root (vTHX->Imain_root)
+#define PL_main_start (vTHX->Imain_start)
+#define PL_max_intro_pending (vTHX->Imax_intro_pending)
+#define PL_maxo (vTHX->Imaxo)
+#define PL_maxsysfd (vTHX->Imaxsysfd)
+#define PL_mess_sv (vTHX->Imess_sv)
+#define PL_min_intro_pending (vTHX->Imin_intro_pending)
+#define PL_minus_F (vTHX->Iminus_F)
+#define PL_minus_a (vTHX->Iminus_a)
+#define PL_minus_c (vTHX->Iminus_c)
+#define PL_minus_l (vTHX->Iminus_l)
+#define PL_minus_n (vTHX->Iminus_n)
+#define PL_minus_p (vTHX->Iminus_p)
+#define PL_modglobal (vTHX->Imodglobal)
+#define PL_multi_close (vTHX->Imulti_close)
+#define PL_multi_end (vTHX->Imulti_end)
+#define PL_multi_open (vTHX->Imulti_open)
+#define PL_multi_start (vTHX->Imulti_start)
+#define PL_multiline (vTHX->Imultiline)
+#define PL_nexttoke (vTHX->Inexttoke)
+#define PL_nexttype (vTHX->Inexttype)
+#define PL_nextval (vTHX->Inextval)
+#define PL_nice_chunk (vTHX->Inice_chunk)
+#define PL_nice_chunk_size (vTHX->Inice_chunk_size)
+#define PL_nomemok (vTHX->Inomemok)
+#define PL_nthreads (vTHX->Inthreads)
+#define PL_nthreads_cond (vTHX->Inthreads_cond)
+#define PL_nullstash (vTHX->Inullstash)
+#define PL_numeric_local (vTHX->Inumeric_local)
+#define PL_numeric_name (vTHX->Inumeric_name)
+#define PL_numeric_radix (vTHX->Inumeric_radix)
+#define PL_numeric_standard (vTHX->Inumeric_standard)
+#define PL_ofmt (vTHX->Iofmt)
+#define PL_oldbufptr (vTHX->Ioldbufptr)
+#define PL_oldname (vTHX->Ioldname)
+#define PL_oldoldbufptr (vTHX->Ioldoldbufptr)
+#define PL_op_mask (vTHX->Iop_mask)
+#define PL_op_seqmax (vTHX->Iop_seqmax)
+#define PL_origalen (vTHX->Iorigalen)
+#define PL_origargc (vTHX->Iorigargc)
+#define PL_origargv (vTHX->Iorigargv)
+#define PL_origenviron (vTHX->Iorigenviron)
+#define PL_origfilename (vTHX->Iorigfilename)
+#define PL_ors_sv (vTHX->Iors_sv)
+#define PL_osname (vTHX->Iosname)
+#define PL_pad_reset_pending (vTHX->Ipad_reset_pending)
+#define PL_padix (vTHX->Ipadix)
+#define PL_padix_floor (vTHX->Ipadix_floor)
+#define PL_patchlevel (vTHX->Ipatchlevel)
+#define PL_pending_ident (vTHX->Ipending_ident)
+#define PL_perl_destruct_level (vTHX->Iperl_destruct_level)
+#define PL_perldb (vTHX->Iperldb)
+#define PL_pidstatus (vTHX->Ipidstatus)
+#define PL_preambleav (vTHX->Ipreambleav)
+#define PL_preambled (vTHX->Ipreambled)
+#define PL_preprocess (vTHX->Ipreprocess)
+#define PL_profiledata (vTHX->Iprofiledata)
+#define PL_psig_name (vTHX->Ipsig_name)
+#define PL_psig_pend (vTHX->Ipsig_pend)
+#define PL_psig_ptr (vTHX->Ipsig_ptr)
+#define PL_ptr_table (vTHX->Iptr_table)
+#define PL_replgv (vTHX->Ireplgv)
+#define PL_rsfp (vTHX->Irsfp)
+#define PL_rsfp_filters (vTHX->Irsfp_filters)
+#define PL_runops (vTHX->Irunops)
+#define PL_sawampersand (vTHX->Isawampersand)
+#define PL_sh_path (vTHX->Ish_path)
+#define PL_sig_pending (vTHX->Isig_pending)
+#define PL_sighandlerp (vTHX->Isighandlerp)
+#define PL_splitstr (vTHX->Isplitstr)
+#define PL_srand_called (vTHX->Isrand_called)
+#define PL_statusvalue (vTHX->Istatusvalue)
+#define PL_statusvalue_vms (vTHX->Istatusvalue_vms)
+#define PL_stderrgv (vTHX->Istderrgv)
+#define PL_stdingv (vTHX->Istdingv)
+#define PL_strtab (vTHX->Istrtab)
+#define PL_strtab_mutex (vTHX->Istrtab_mutex)
+#define PL_sub_generation (vTHX->Isub_generation)
+#define PL_sublex_info (vTHX->Isublex_info)
+#define PL_subline (vTHX->Isubline)
+#define PL_subname (vTHX->Isubname)
+#define PL_sv_arenaroot (vTHX->Isv_arenaroot)
+#define PL_sv_count (vTHX->Isv_count)
+#define PL_sv_lock_mutex (vTHX->Isv_lock_mutex)
+#define PL_sv_mutex (vTHX->Isv_mutex)
+#define PL_sv_no (vTHX->Isv_no)
+#define PL_sv_objcount (vTHX->Isv_objcount)
+#define PL_sv_root (vTHX->Isv_root)
+#define PL_sv_undef (vTHX->Isv_undef)
+#define PL_sv_yes (vTHX->Isv_yes)
+#define PL_svref_mutex (vTHX->Isvref_mutex)
+#define PL_sys_intern (vTHX->Isys_intern)
+#define PL_tainting (vTHX->Itainting)
+#define PL_threadnum (vTHX->Ithreadnum)
+#define PL_threads_mutex (vTHX->Ithreads_mutex)
+#define PL_threadsv_names (vTHX->Ithreadsv_names)
+#define PL_thrsv (vTHX->Ithrsv)
+#define PL_tokenbuf (vTHX->Itokenbuf)
+#define PL_uid (vTHX->Iuid)
+#define PL_unsafe (vTHX->Iunsafe)
+#define PL_utf8_alnum (vTHX->Iutf8_alnum)
+#define PL_utf8_alnumc (vTHX->Iutf8_alnumc)
+#define PL_utf8_alpha (vTHX->Iutf8_alpha)
+#define PL_utf8_ascii (vTHX->Iutf8_ascii)
+#define PL_utf8_cntrl (vTHX->Iutf8_cntrl)
+#define PL_utf8_digit (vTHX->Iutf8_digit)
+#define PL_utf8_graph (vTHX->Iutf8_graph)
+#define PL_utf8_lower (vTHX->Iutf8_lower)
+#define PL_utf8_mark (vTHX->Iutf8_mark)
+#define PL_utf8_print (vTHX->Iutf8_print)
+#define PL_utf8_punct (vTHX->Iutf8_punct)
+#define PL_utf8_space (vTHX->Iutf8_space)
+#define PL_utf8_tolower (vTHX->Iutf8_tolower)
+#define PL_utf8_totitle (vTHX->Iutf8_totitle)
+#define PL_utf8_toupper (vTHX->Iutf8_toupper)
+#define PL_utf8_upper (vTHX->Iutf8_upper)
+#define PL_utf8_xdigit (vTHX->Iutf8_xdigit)
+#define PL_uudmap (vTHX->Iuudmap)
+#define PL_warnhook (vTHX->Iwarnhook)
+#define PL_widesyscalls (vTHX->Iwidesyscalls)
+#define PL_xiv_arenaroot (vTHX->Ixiv_arenaroot)
+#define PL_xiv_root (vTHX->Ixiv_root)
+#define PL_xnv_arenaroot (vTHX->Ixnv_arenaroot)
+#define PL_xnv_root (vTHX->Ixnv_root)
+#define PL_xpv_arenaroot (vTHX->Ixpv_arenaroot)
+#define PL_xpv_root (vTHX->Ixpv_root)
+#define PL_xpvav_arenaroot (vTHX->Ixpvav_arenaroot)
+#define PL_xpvav_root (vTHX->Ixpvav_root)
+#define PL_xpvbm_arenaroot (vTHX->Ixpvbm_arenaroot)
+#define PL_xpvbm_root (vTHX->Ixpvbm_root)
+#define PL_xpvcv_arenaroot (vTHX->Ixpvcv_arenaroot)
+#define PL_xpvcv_root (vTHX->Ixpvcv_root)
+#define PL_xpvhv_arenaroot (vTHX->Ixpvhv_arenaroot)
+#define PL_xpvhv_root (vTHX->Ixpvhv_root)
+#define PL_xpviv_arenaroot (vTHX->Ixpviv_arenaroot)
+#define PL_xpviv_root (vTHX->Ixpviv_root)
+#define PL_xpvlv_arenaroot (vTHX->Ixpvlv_arenaroot)
+#define PL_xpvlv_root (vTHX->Ixpvlv_root)
+#define PL_xpvmg_arenaroot (vTHX->Ixpvmg_arenaroot)
+#define PL_xpvmg_root (vTHX->Ixpvmg_root)
+#define PL_xpvnv_arenaroot (vTHX->Ixpvnv_arenaroot)
+#define PL_xpvnv_root (vTHX->Ixpvnv_root)
+#define PL_xrv_arenaroot (vTHX->Ixrv_arenaroot)
+#define PL_xrv_root (vTHX->Ixrv_root)
+#define PL_yychar (vTHX->Iyychar)
+#define PL_yydebug (vTHX->Iyydebug)
+#define PL_yyerrflag (vTHX->Iyyerrflag)
+#define PL_yylval (vTHX->Iyylval)
+#define PL_yynerrs (vTHX->Iyynerrs)
+#define PL_yyval (vTHX->Iyyval)
+
+# endif /* USE_THREADS */