Index: src/jit/i386/jit_defs.c =================================================================== --- src/jit/i386/jit_defs.c (revision 38105) +++ src/jit/i386/jit_defs.c (working copy) @@ -2476,7 +2476,7 @@ const char i_map[] = { emit_EDI, emit_ESI, emit_EDX, emit_ECX }; const char floatval_map[] = - { 1, 2, 3, 4, 5 }; /* ST(1) .. (ST(4) */ + { }; /* XXX see TT #530, #501, #38 */ const char i_map_sub[] = { emit_EDX, emit_ECX, emit_EBX, emit_EDI, emit_ESI }; @@ -2494,7 +2494,7 @@ 4, /* 4 mapped ints */ 2, /* first 2 are preserved */ i_map, - 4, /* 4 mapped float regs */ + 0, /* 0 mapped float regs see TT #530, #38, #501 */ 0, /* ABI sez it's not preserved */ floatval_map }, Index: src/jit/i386/jit_emit.h =================================================================== --- src/jit/i386/jit_emit.h (revision 38105) +++ src/jit/i386/jit_emit.h (working copy) @@ -1223,7 +1223,7 @@ jit_emit_fstore_mb_n((interp), (pc), emit_EBX, (d)); \ } \ else { \ - jit_emit_fst_mb_n((interp), (pc), emit_EBX, (d)); \ + jit_emit_fstore_mb_n((interp), (pc), emit_EBX, (d)); \ } \ } Index: src/jit/i386/core.jit =================================================================== --- src/jit/i386/core.jit (revision 38105) +++ src/jit/i386/core.jit (working copy) @@ -1740,7 +1740,7 @@ emitm_fstp(NATIVECODE, (MAP[1] + 1)); /* store res */ } else { - jit_emit_fstore_m_n(interp, NATIVECODE, ROFFS_NUM(1)); + jit_emit_fstore_mb_n(interp, NATIVECODE, emit_EBX, ROFFS_NUM(1)); } if (saved) emitm_popl_r(NATIVECODE, emit_ECX); Index: src/jit_debug.c =================================================================== --- src/jit_debug.c (revision 38105) +++ src/jit_debug.c (working copy) @@ -286,8 +286,7 @@ char * const src = Parrot_str_to_cstring(interp, Parrot_debug_pc_to_filename(interp, interp->code->debugs, 0)); - pasmfile = string_make(interp, src, strlen(src), NULL, - PObj_external_FLAG); + pasmfile = string_make(interp, src, strlen(src), NULL, 0); file = Parrot_str_copy(interp, pasmfile); /* chop pasm/pir */ Index: t/op/trans.t =================================================================== --- t/op/trans.t (revision 38105) +++ t/op/trans.t (working copy) @@ -205,14 +205,7 @@ ok 2 OUTPUT -my $runcore = $ENV{TEST_PROG_ARGS} || ''; -my @bsdtodo = ( - $runcore =~ /--runcore=jit/ && $^O =~ m/bsd/i - ? ( todo => 'broken under JIT TT #501' ) - : () -); - -pasm_output_is( <<"CODE", <