2005-07-05 11:38:01 +00:00
|
|
|
/*
|
2005-09-30 12:19:00 +00:00
|
|
|
* $Id: bytecode.h,v 1.11 2005-09-30 12:19:00 bacon Exp $
|
2005-07-05 11:38:01 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _XP_STX_BYTECODE_H_
|
|
|
|
#define _XP_STX_BYTECODE_H_
|
|
|
|
|
2005-08-18 15:28:18 +00:00
|
|
|
#include <xp/stx/stx.h>
|
2005-07-07 07:45:05 +00:00
|
|
|
|
2005-07-10 03:16:40 +00:00
|
|
|
#define PUSH_RECEIVER_VARIABLE 0x00
|
|
|
|
#define PUSH_TEMPORARY_LOCATION 0x10
|
|
|
|
#define PUSH_LITERAL_CONSTANT 0x20
|
|
|
|
#define PUSH_LITERAL_VARIABLE 0x30
|
|
|
|
#define STORE_RECEIVER_VARIABLE 0x40
|
|
|
|
#define STORE_TEMPORARY_LOCATION 0x50
|
|
|
|
|
|
|
|
#define PUSH_RECEIVER_VARIABLE_EXTENDED 0x60
|
|
|
|
#define PUSH_TEMPORARY_LOCATION_EXTENDED 0x61
|
|
|
|
#define PUSH_LITERAL_CONSTANT_EXTENDED 0x62
|
|
|
|
#define PUSH_LITERAL_VARIABLE_EXTENDED 0x63
|
|
|
|
#define STORE_RECEIVER_VARIABLE_EXTENDED 0x64
|
|
|
|
#define STORE_TEMPORARY_LOCATION_EXTENDED 0x65
|
2005-08-11 16:16:04 +00:00
|
|
|
|
|
|
|
#define STORE_POP_STACK_TOP 0x67
|
|
|
|
#define DUPLICATE_POP_STACK_TOP 0x68
|
|
|
|
#define PUSH_ACTIVE_CONTEXT 0x69
|
|
|
|
#define PUSH_NIL 0x6A
|
|
|
|
#define PUSH_TRUE 0x6B
|
|
|
|
#define PUSH_FALSE 0x6C
|
2005-09-30 12:19:00 +00:00
|
|
|
#define PUSH_RECEIVER 0x6D
|
2005-07-10 03:16:40 +00:00
|
|
|
|
2005-07-10 09:21:46 +00:00
|
|
|
#define SEND_TO_SELF 0x70
|
|
|
|
#define SEND_TO_SUPER 0x71
|
|
|
|
#define SEND_TO_SELF_EXTENDED 0x72
|
|
|
|
#define SEND_TO_SUPER_EXTENDED 0x73
|
2005-07-10 03:16:40 +00:00
|
|
|
|
|
|
|
#define RETURN_RECEIVER 0x78
|
|
|
|
#define RETURN_TRUE 0x79
|
|
|
|
#define RETURN_FALSE 0x7A
|
|
|
|
#define RETURN_NIL 0x7B
|
|
|
|
#define RETURN_FROM_MESSAGE 0x7C
|
|
|
|
#define RETURN_FROM_BLOCK 0x7D
|
2005-07-08 11:32:50 +00:00
|
|
|
|
2005-07-10 09:21:46 +00:00
|
|
|
#define DO_PRIMITIVE 0xF0
|
2005-07-08 11:32:50 +00:00
|
|
|
|
2005-07-07 07:45:05 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
int xp_stx_decode (xp_stx_t* stx, xp_word_t class_idx);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
2005-07-05 11:38:01 +00:00
|
|
|
|
|
|
|
#endif
|