enhanced method preamble
This commit is contained in:
@ -614,8 +614,13 @@ struct stix_method_t
|
||||
* The code can be one of the following values:
|
||||
* 0 - no special action
|
||||
* 1 - return self
|
||||
* 2 - return instvar[index]
|
||||
* 3 - do primitive[index]
|
||||
* 2 - return nil
|
||||
* 3 - return true
|
||||
* 4 - return false
|
||||
* 5 - return -index.
|
||||
* 6 - return index.
|
||||
* 7 - return instvar[index]
|
||||
* 8 - do primitive[index]
|
||||
*/
|
||||
#define STIX_METHOD_MAKE_PREAMBLE(code,index) ((((stix_ooi_t)index) << 8) | ((stix_ooi_t)code))
|
||||
#define STIX_METHOD_GET_PREAMBLE_CODE(preamble) (((stix_ooi_t)preamble) & 0xFF)
|
||||
@ -623,8 +628,16 @@ struct stix_method_t
|
||||
|
||||
#define STIX_METHOD_PREAMBLE_NONE 0
|
||||
#define STIX_METHOD_PREAMBLE_RETURN_RECEIVER 1
|
||||
#define STIX_METHOD_PREAMBLE_RETURN_INSTVAR 2
|
||||
#define STIX_METHOD_PREAMBLE_PRIMITIVE 3
|
||||
#define STIX_METHOD_PREAMBLE_RETURN_NIL 2
|
||||
#define STIX_METHOD_PREAMBLE_RETURN_TRUE 3
|
||||
#define STIX_METHOD_PREAMBLE_RETURN_FALSE 4
|
||||
#define STIX_METHOD_PREAMBLE_RETURN_NEGINDEX 5
|
||||
#define STIX_METHOD_PREAMBLE_RETURN_INDEX 6
|
||||
#define STIX_METHOD_PREAMBLE_RETURN_INSTVAR 7
|
||||
#define STIX_METHOD_PREAMBLE_PRIMITIVE 8
|
||||
|
||||
/* the index is an 16-bit unsigned integer. */
|
||||
#define STIX_OOI_IN_PREAMBLE_INDEX_RANGE(ooi) ((ooi) >= 0 && (ooi) <= 0xFFFF)
|
||||
|
||||
#define STIX_CONTEXT_NAMED_INSTVARS 8
|
||||
typedef struct stix_context_t stix_context_t;
|
||||
|
Reference in New Issue
Block a user