* src/vm/jit/jit.h (INS_FLAG_ID_SHIFT, INS_FLAG_ID_MASK): Added. We add
authoredwin <none@none>
Sun, 12 Nov 2006 13:21:07 +0000 (13:21 +0000)
committeredwin <none@none>
Sun, 12 Nov 2006 13:21:07 +0000 (13:21 +0000)
commit6334050272d4ea604b9721c48bf7d460e559e382
tree5bc48f38caaeee56942d0363a04483391be9434d
parent0d84ebb29219bdacb9f314866118226941adaa6e
* src/vm/jit/jit.h (INS_FLAG_ID_SHIFT, INS_FLAG_ID_MASK): Added. We add
an instruction id to the flags field. This is a first attempt to obtain
an id for ICMDs that is not dependent on any optimizations or
transformations in the compiler. The id is not the same as the bytecode
PC, but it has a fixed relation to the bytecode PC, so it should be
sufficient at least for replacement. This is an intermediate solution
with serious shortcommings, and should be replaced by a true ICMD-to-
bytecode-PC mapping in the future. (For example, the id uses up all
the free bits in the flags field, and it is not protected against
overflow.)

* src/vm/jit/parse.h, src/vm/jit/parse.c: Set the instruction id, and
do not overwrite it when setting other flags.

* src/vm/jit/stack.c: Do not clear the instruction id.

* src/vm/jit/show.c (show_basicblock): Display the instruction id.
src/vm/jit/jit.h
src/vm/jit/parse.c
src/vm/jit/parse.h
src/vm/jit/show.c
src/vm/jit/stack.c