]> gitweb.factorcode.org Git - factor.git/blob - native/word.h
remove -falign-functions=8 restriction
[factor.git] / native / word.h
1 typedef void (*XT)(void);
2
3 typedef struct {
4         /* TAGGED header */
5         CELL header;
6         /* untagged execution token: jump here to execute word */
7         CELL xt;
8         /* untagged on-disk primitive number */
9         CELL primitive;
10         /* TAGGED parameter to xt; used for colon definitions */
11         CELL parameter;
12         /* TAGGED property list for library code */
13         CELL plist;
14 } WORD;
15
16 INLINE WORD* untag_word(CELL tagged)
17 {
18         type_check(WORD_TYPE,tagged);
19         return (WORD*)UNTAG(tagged);
20 }
21
22 INLINE CELL tag_word(WORD* word)
23 {
24         return RETAG(word,WORD_TYPE);
25 }
26
27 WORD* word(FIXNUM primitive, CELL parameter, CELL plist);
28 void update_xt(WORD* word);
29 void fixup_word(WORD* word);
30 void collect_word(WORD* word);
31 void primitive_wordp(void);
32 void primitive_word(void);
33 void primitive_word_primitive(void);
34 void primitive_set_word_primitive(void);
35 void primitive_word_parameter(void);
36 void primitive_set_word_parameter(void);
37 void primitive_word_plist(void);
38 void primitive_set_word_plist(void);