Opened 4 years ago

Closed 4 years ago

#298 closed defect (fixed)

illegal bytecode on RISC-V

Reported by: jan vrany Owned by:
Priority: major Milestone: 8.1.0
Component: default Keywords: riscv vm
Cc: Also affects CVS HEAD (eXept version): no

Description

Smalltalk/X compiled for riscv64-linux-gnu executes illegal bytecode. producing:

INTERP [debug] (19-11-12 23:01:45): illegal bytecode: 108 (0x6c) at pc 325 (101 118 101 108 32 <-)
INTERP [debug] (19-11-12 23:01:45): illegal bytecode: 108 (0x6c) at pc 282 (116 78 105 108 32 <-)
ProcessorScheduler [warning] (2019-11-12 23:03:13.830): cannot evaluate timedBlock ([] in ToolApplicationModel>>startClock) for dead process: 'ST/X Launcher'
DebugView [info] (2019-11-12 23:03:16.505): ignored error while unwinding: UndefinedObject does not understand: #critical:
DebugView [info] (2019-11-12 23:03:16.510): ignored error while unwinding: UndefinedObject does not understand: #critical:
DebugView [info] (2019-11-12 23:03:16.514): ignored error while unwinding: Non boolean receiver - proceed for truth

This is probaly a symptom of something more fundamental as both embedded and standalone test runner UI is messed up (some widgets are missing, layout seem to be wrong).

Attachments (1)

issue298_riscv_crash.st (295 bytes ) - added by jan vrany 4 years ago.
test case

Download all attachments as: .zip

Change History (2)

by jan vrany, 4 years ago

Attachment: issue298_riscv_crash.st added

test case

comment:1 by jan vrany, 4 years ago

Resolution: fixed
Status: newclosed

Fixed in stc:

5c2e3c08ce28/stx.stc: RISC-V: #define HAS_SIGNED_CHAR

This fixes nasty bug in interpreter causing jumps to wrong
offsets, sometimes out of bytecode array.

Note: See TracTickets for help on using tickets.