open(ASMDATA_PM, ">ext/B/B/Asmdata.pm") or die "ext/B/B/Asmdata.pm: $!";
print ASMDATA_PM $perl_header, <<'EOT';
package B::Asmdata;
+
+our $VERSION = '1.00';
+
use Exporter;
@ISA = qw(Exporter);
@EXPORT_OK = qw(%insn_data @insn_name @optype @specialsv_name);
#define NO_XSLOCKS
#include "XSUB.h"
-#ifdef PERL_OBJECT
-#undef CALL_FPTR
-#define CALL_FPTR(fptr) (pPerl->*fptr)
-#undef PL_ppaddr
-#define PL_ppaddr (*get_ppaddr())
-#endif
-
#include "byterun.h"
#include "bytecode.h"
};
void *
-bset_obj_store(pTHXo_ struct byteloader_state *bstate, void *obj, I32 ix)
+bset_obj_store(pTHX_ struct byteloader_state *bstate, void *obj, I32 ix)
{
if (ix > bstate->bs_obj_list_fill) {
Renew(bstate->bs_obj_list, ix + 32, void*);
}
void
-byterun(pTHXo_ register struct byteloader_state *bstate)
+byterun(pTHX_ register struct byteloader_state *bstate)
{
- dTHR;
register int insn;
U32 ix;
SV *specialsv_list[6];
EOT
-for (my $i = 0; $i < @specialsv; $i++) {
+for my $i ( 0 .. $#specialsv ) {
print BYTERUN_C " specialsv_list[$i] = $specialsv[$i];\n";
}
int bl_getc(struct byteloader_fdata *);
int bl_read(struct byteloader_fdata *, char *, size_t, size_t);
-extern void byterun(pTHXo_ struct byteloader_state *);
+extern void byterun(pTHX_ struct byteloader_state *);
enum {
EOT
my $add_enum_value = 0;
my $max_insn;
-for ($i = 0; $i < @insn_name; $i++) {
+for $i ( 0 .. $#insn_name ) {
$insn = uc($insn_name[$i]);
if (defined($insn)) {
$max_insn = $i;
op_first cUNOP->op_first opindex
op_last cBINOP->op_last opindex
op_other cLOGOP->op_other opindex
-op_children cLISTOP->op_children U32
op_pmreplroot cPMOP->op_pmreplroot opindex
op_pmreplrootgv *(SV**)&cPMOP->op_pmreplroot svindex
op_pmreplstart cPMOP->op_pmreplstart opindex