}
ANN static void prepare_call(const VM_Shred shred, const m_uint offset) {
- shred->mem += offset + SZ_INT + sizeof(struct frame_t);
- register struct frame_t *frame = (struct frame_t*)(shred->mem - sizeof(struct frame_t));
- frame->push = offset + SZ_INT + sizeof(struct frame_t);
+ const m_uint push = offset + SZ_INT + sizeof(struct frame_t);
+ shred->mem += push;
+ struct frame_t *frame = (struct frame_t*)(shred->mem - sizeof(struct frame_t));
+ frame->push = push;
frame->code = shred->code;
frame->pc = shred->pc;
shred->pc = 0;
#define VMSZ (SZ_INT > SZ_FLOAT ? SZ_INT : SZ_FLOAT)
-#define VAL (*(m_uint*)(byte + VMSZ))
-#define FVAL (*(m_float*)(byte + VMSZ))
-#define VAL2 (*(m_uint*)(byte + SZ_INT + SZ_INT))
+#define VAL (*(m_uint*)(byte + VMSZ))
+#define FVAL (*(m_float*)(byte + VMSZ))
+#define VAL2 (*(m_uint*)(byte + SZ_INT + SZ_INT))
+#define UVAL (*(uint16_t*)(byte + SZ_INT + SZ_INT))
+#define UVAL2 (*(uint16_t*)(byte + SZ_INT + SZ_INT + sizeof(uint16_t)))
#define BRANCH_DISPATCH(check) \
if(check) SET_BYTE(VAL);\