Ticket #352 (closed bug: wontfix)

Opened 6 years ago

Last modified 5 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 6 years ago.
fixed jit_emit_mov_mr_n, but unused
tt352-jit-i386-ld.2.patch Download (5.4 KB) - added by rurban 6 years ago.
tt352-jit-i386-ld.3.patch Download (6.4 KB) - added by rurban 6 years ago.
tt352-jit-i386-ld.4.patch Download (8.8 KB) - added by rurban 6 years ago.
tt352-jit-i386-ld.5.patch Download (10.1 KB) - added by rurban 6 years ago.
still mapping failures
tt352-disable-ld.patch Download (4.5 KB) - added by rurban 6 years ago.
until it is fixed, disable jit with long double

Change History

Changed 6 years ago by rurban

  • description modified (diff)
  • patch set to new

Changed 6 years ago by rurban

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

Changed 6 years ago by rurban

fixed jit_emit_mov_mr_n, but unused

Changed 6 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 6 years ago by rurban

Changed 6 years ago by rurban

Changed 6 years ago by rurban

Changed 6 years ago by rurban

still mapping failures

Changed 6 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 6 years ago by rurban

until it is fixed, disable jit with long double

Changed 6 years ago by rurban

tt352-disable-ld.patch applied as r37231.

Changed 5 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.