qse/ase/stx/method.h

49 lines
1.3 KiB
C
Raw Normal View History

2005-07-04 11:32:41 +00:00
/*
2005-09-11 15:15:35 +00:00
* $Id: method.h,v 1.7 2005-09-11 15:15:35 bacon Exp $
2005-07-04 11:32:41 +00:00
*/
#ifndef _XP_STX_METHOD_H_
#define _XP_STX_METHOD_H_
2005-08-18 15:28:18 +00:00
#include <xp/stx/stx.h>
2005-07-04 11:32:41 +00:00
2005-09-11 15:15:35 +00:00
#define XP_STX_METHOD_SIZE 4
2005-07-04 11:32:41 +00:00
#define XP_STX_METHOD_TEXT 0
2005-07-05 09:02:13 +00:00
#define XP_STX_METHOD_SELECTOR 1
2005-07-04 11:32:41 +00:00
#define XP_STX_METHOD_BYTECODES 2
2005-09-11 15:15:35 +00:00
#define XP_STX_METHOD_TMPCOUNT 3
2005-07-05 09:02:13 +00:00
2005-08-18 15:39:40 +00:00
/* dolphin smalltalk's flags representation
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
-------------------------------------------------------------------------------------------------
| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0| 1| | | | 0| 0| 0| 1|
-------------------------------------------------------------------------------------------------
\----------|-----------/ \----------|----------/ \---------|-----------/ | \---|--/ |
extraIndex arg Count temp Count | flags |
| |
Block flag SmallInteger flag"
*/
2005-07-05 09:02:13 +00:00
struct xp_stx_method_t
{
xp_stx_objhdr_t header;
xp_word_t text;
xp_word_t selector; /* is this necessary? */
xp_word_t bytecodes;
2005-09-11 15:15:35 +00:00
xp_word_t tmpcount;
2005-07-05 09:02:13 +00:00
xp_word_t literals[1];
};
typedef struct xp_stx_method_t xp_stx_method_t;
2005-07-04 11:32:41 +00:00
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
#endif