X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=bytecode.pl;h=7d9b223f7c08ea6526efcd5cee7bbb8d4624f738;hb=2b8dc4d2eb8ad36cf53b962575087dfa9dc6d602;hp=1e18d559905264f41b9ee22bac8fae84de5f82b0;hpb=2072c350e98bf8b4e76d219ba3d03aade7ce20df;p=p5sagit%2Fp5-mst-13.2.git diff --git a/bytecode.pl b/bytecode.pl index 1e18d55..7d9b223 100644 --- a/bytecode.pl +++ b/bytecode.pl @@ -9,7 +9,7 @@ my %alias_to = ( U8 => [qw(char)], ); -my @optype= qw(OP UNOP BINOP LOGOP CONDOP LISTOP PMOP SVOP GVOP PVOP LOOP COP); +my @optype= qw(OP UNOP BINOP LOGOP LISTOP PMOP SVOP GVOP PVOP LOOP COP); # Nullsv *must* come first in the following so that the condition # ($$sv == 0) can continue to be used to test (sv == Nullsv). @@ -65,6 +65,7 @@ EOT open(BYTERUN_C, ">ext/ByteLoader/byterun.c") or die "ext/ByteLoader/byterun.c: $!"; print BYTERUN_C $c_header, <<'EOT'; +#define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #define NO_XSLOCKS @@ -233,7 +234,7 @@ for ($i = 0; $i < @optype - 1; $i++) { printf BYTERUN_H " OPt_%s\t\t/* %d */\n};\n\n", $optype[$i], $i; print BYTERUN_H <<'EOT'; -EXT void byterun(pTHXo_ struct bytestream bs); +extern void byterun(pTHXo_ struct bytestream bs); #define INIT_SPECIALSV_LIST STMT_START { \ EOT @@ -312,7 +313,7 @@ xrv SvRV(bytecode_sv) svindex xpv bytecode_sv none x xiv32 SvIVX(bytecode_sv) I32 xiv64 SvIVX(bytecode_sv) IV64 -xnv SvNVX(bytecode_sv) double +xnv SvNVX(bytecode_sv) NV xlv_targoff LvTARGOFF(bytecode_sv) STRLEN xlv_targlen LvTARGLEN(bytecode_sv) STRLEN xlv_targ LvTARG(bytecode_sv) svindex @@ -383,8 +384,6 @@ op_private PL_op->op_private U8 op_first cUNOP->op_first opindex op_last cBINOP->op_last opindex op_other cLOGOP->op_other opindex -op_true cCONDOP->op_true opindex -op_false cCONDOP->op_false opindex op_children cLISTOP->op_children U32 op_pmreplroot cPMOP->op_pmreplroot opindex op_pmreplrootgv *(SV**)&cPMOP->op_pmreplroot svindex