Ticket #352 (closed bug: wontfix)

Opened 13 years ago

Last modified 12 years ago

fix jit i386 with long double

Reported by: rurban Owned by: rurban
Priority: normal Milestone:
Component: core Version: trunk
Severity: high Keywords:
Cc: Language:
Patch status: new Platform:

Description (last modified by rurban) (diff)

on i386 Configure.pl --floatval='long double' leads to jit compilation problems, mostly just missing the interp argument. Note: This is NUMVAL_SIZE == 12

I have a patch, but this leads to:

../../parrot.exe ../../runtime/parrot/library/PGE/Perl6Grammar.pir  --output=PGE/builtins_gen.pir PGE/builtins.pg
make[1]: *** [PGE.pbc] Segmentation fault (core dumped)

I also see a potential problem in

/* numvar <- ST(i) */
#  define jit_emit_mov_mr_n(pc, d, r) { \
    emitm_fld((pc), (r)); \
    jit_emit_fstore_m_n((pc), (d)); \
}

jit_emit_fstore_m_n requires interp, but jit_emit_mov_mr_n does not give it to us. Apparently jit_emit_mov_mr_n is not used at build-time.

Attachments

tt352-jit-i386-ld.patch Download (4.9 KB) - added by rurban 13 years ago.
fixed jit_emit_mov_mr_n, but unused
tt352-jit-i386-ld.2.patch Download (5.4 KB) - added by rurban 13 years ago.
tt352-jit-i386-ld.3.patch Download (6.4 KB) - added by rurban 13 years ago.
tt352-jit-i386-ld.4.patch Download (8.8 KB) - added by rurban 13 years ago.
tt352-jit-i386-ld.5.patch Download (10.1 KB) - added by rurban 13 years ago.
still mapping failures
tt352-disable-ld.patch Download (4.5 KB) - added by rurban 13 years ago.
until it is fixed, disable jit with long double

Change History

Changed 13 years ago by rurban

  • description modified (diff)
  • patch set to new

Changed 13 years ago by rurban

  • status changed from new to assigned
  • component changed from none to core
  • severity changed from medium to high

Changed 13 years ago by rurban

fixed jit_emit_mov_mr_n, but unused

Changed 13 years ago by rurban

The pge crash is caused by:

'I' is not a valid sprintf format

Note: This is NUMVAL_SIZE=12

$ ../../parrot.exe -Dff -dff ../../runtime/parrot/library/PGE/Perl6Grammar.pir --output=PGE/builtins_gen.pir PGE/builtins.pg

Changed 13 years ago by rurban

Changed 13 years ago by rurban

Changed 13 years ago by rurban

Changed 13 years ago by rurban

still mapping failures

Changed 13 years ago by rurban

failing tests with tt352-jit-i386-ld.5.patch:

$ TEST_PROG_ARGS=-j prove t/op/jit.t
t/op/jit....ok
$ TEST_PROG_ARGS=-j prove t/op/jitn.t
t/op/jitn (Wstat: 1792 Tests: 14 Failed: 7)
  Failed tests:  5-7, 9-11, 14
  Non-zero exit status: 7
$ TEST_PROG_ARGS=-j prove t/op/trans.t
t/op/trans (Wstat: 4096 Tests: 22 Failed: 16)
  Failed tests:  1-5, 9-12, 14-20
  Non-zero exit status: 16

looks like a mapping issue.

Changed 13 years ago by rurban

until it is fixed, disable jit with long double

Changed 13 years ago by rurban

tt352-disable-ld.patch applied as r37231.

Changed 12 years ago by bacek

  • status changed from assigned to closed
  • resolution set to wontfix

Current JIT is deprecated.

Note: See TracTickets for help on using tickets.