0x7CFE / llst

LLVM powered Little Smalltalk.
Other
93 stars 10 forks source link

Invalid opcode 0 during interactive JIT execution #26

Closed 0x7CFE closed 11 years ago

0x7CFE commented 11 years ago

This happens when we try to use Jit compiler in interactive (console) mode. When the same code is inserted into the image file and compiled using ImageBuilder all works as expected.

->Jit do: [ 1 ]
JIT: Invalid opcode 0 at offset 13 in method doItCommand
JIT: Invalid opcode 0 at offset 15 in method doItCommand
JIT: Invalid opcode 0 at offset 17 in method doItCommand
JIT: Invalid opcode 0 at offset 19 in method doItCommand
JIT: Invalid opcode 0 at offset 21 in method doItCommand
Jit

Affected Revision: 3adf5a55c241a71a6e1ca035ee7e8a7686e083eb Base Revision: unknown

kpp commented 11 years ago

The soft part is affected too:

->File fileIn: '../image/disasm.st'
Compiling Method:disassemble:at:for:... ok
Compiling Method:disassemble... ok
file in completed
->[1]; creatingContext method disassemble
0000 PushBlock
0003     PushConstant 1
0004     DoSpecial stackReturn
0005 DoSpecial duplicate
0006 MarkArguments 1
0007 SendMessage creatingContext
0008 MarkArguments 1
0009 SendMessage method
0010 MarkArguments 1
0011 SendMessage disassemble
0012 DoSpecial popTop
0013 DoSpecial stackReturn
0014 DoSpecial popTop
0015 DoSpecial selfReturn
0016 
0018 
Block
->

There should be no empty 16 and 18 bytecodes. The problem must be in Smalltalk part.

0x7CFE commented 11 years ago

Further fixes are out of the scope of 0.2 milestone.