/* generated by Id 1.1 at ,$ */ /* with the command: -I../stage1/ -I../st80 -c SlotVariableNode.st -o ../stage2/SlotVariableNode.o.c */ #include static struct __libid *_libid= 0; #ifdef ID_DEBUG # define _enter(info) void *__id_debug= _libid->enter(info) # define _line(lno) _libid->line(lno) # define _leave() _libid->leave(__id_debug) # define _backtrace() _libid->backtrace() #else # define _enter(info) (void)info # define _line(lno) # define _leave() # define _backtrace() "(no debugging information)\n" #endif #define _return _leave(); return #define _sendv(MSG, N, RCV, ARG...) ({ \ struct __send _s= { (MSG), (N), (RCV) }; \ ((_imp_t)(_libid->bindv(&_s)))(&_s, _s.receiver, _s.receiver, ##ARG); \ }) #define _superv(TYP, MSG, N, RCV, ARG...) ({ \ struct __send _s= { (MSG), (N), (TYP) }; \ _imp_t _imp= _libid->bindv(&_s); \ _s.receiver= (RCV); \ _imp(&_s, _s.receiver, _s.receiver, ##ARG); \ }) static oop s_isGlobal= 0; static oop s_tag= 0; static oop s__5fimport_= 0; static oop s_initialize= 0; static oop s__5fslots= 0; static oop s__2d= 0; static oop s_scope= 0; static oop s_withName_position_scope_= 0; static oop s__5fdebugName= 0; static oop s_type_receiver_= 0; static oop s_new= 0; static oop s_freeWithin_= 0; static oop s_isFree= 0; static oop s_generate_location_= 0; static oop s_loadSlot_type_location_= 0; static oop s_generateStore_location_= 0; static oop s_storeSlot_type_location_= 0; static oop s_generate_freeIn_location_= 0; static oop s_loadFreeSlot_type_scope_outer_offset_location_= 0; static oop s_generateStore_freeIn_location_= 0; static oop s_storeFreeSlot_type_scope_outer_offset_location_= 0; static oop s_name= 0; static oop s_offset= 0; static oop s__5fsizeof= 0; static oop s_level= 0; static struct _Selector { const char *name; oop *addr; } _Selectors[]= { { "isGlobal", &s_isGlobal }, { "tag", &s_tag }, { "_import:", &s__5fimport_ }, { "initialize", &s_initialize }, { "_slots", &s__5fslots }, { "-", &s__2d }, { "scope", &s_scope }, { "withName:position:scope:", &s_withName_position_scope_ }, { "_debugName", &s__5fdebugName }, { "type:receiver:", &s_type_receiver_ }, { "new", &s_new }, { "freeWithin:", &s_freeWithin_ }, { "isFree", &s_isFree }, { "generate:location:", &s_generate_location_ }, { "loadSlot:type:location:", &s_loadSlot_type_location_ }, { "generateStore:location:", &s_generateStore_location_ }, { "storeSlot:type:location:", &s_storeSlot_type_location_ }, { "generate:freeIn:location:", &s_generate_freeIn_location_ }, { "loadFreeSlot:type:scope:outer:offset:location:", &s_loadFreeSlot_type_scope_outer_offset_location_ }, { "generateStore:freeIn:location:", &s_generateStore_freeIn_location_ }, { "storeFreeSlot:type:scope:outer:offset:location:", &s_storeFreeSlot_type_scope_outer_offset_location_ }, { "name", &s_name }, { "offset", &s_offset }, { "_sizeof", &s__5fsizeof }, { "level", &s_level }, { 0, 0 } }; struct t__object { struct _vtable *_vtable[0]; }; struct t__selector { struct _vtable *_vtable[0]; oop v__size; oop v__elements; }; struct t__assoc { struct _vtable *_vtable[0]; oop v_key; oop v_value; }; struct t__closure { struct _vtable *_vtable[0]; oop v__method; oop v_data; }; struct t__vector { struct _vtable *_vtable[0]; oop v__size; }; struct t__vtable { struct _vtable *_vtable[0]; oop v__tally; oop v_bindings; oop v_delegate; }; struct t_Object { struct _vtable *_vtable[0]; }; struct t_UndefinedObject { struct _vtable *_vtable[0]; }; struct t_StaticBlockClosure { struct _vtable *_vtable[0]; oop v__function; oop v__arity; }; struct t_BlockClosure { struct _vtable *_vtable[0]; oop v__function; oop v__arity; oop v_outer; oop v_state; oop v__nlr; }; struct t_Magnitude { struct _vtable *_vtable[0]; }; struct t_Character { struct _vtable *_vtable[0]; oop v_value; }; struct t_Number { struct _vtable *_vtable[0]; }; struct t_Fraction { struct _vtable *_vtable[0]; oop v_numerator; oop v_denominator; }; struct t_Float { struct _vtable *_vtable[0]; }; struct t_Integer { struct _vtable *_vtable[0]; }; struct t_SmallInteger { struct _vtable *_vtable[0]; }; struct t_LargePositiveInteger { struct _vtable *_vtable[0]; oop v_bytes; }; struct t_LargeNegativeInteger { struct _vtable *_vtable[0]; oop v_bytes; }; struct t_Collection { struct _vtable *_vtable[0]; }; struct t_SequenceableCollection { struct _vtable *_vtable[0]; }; struct t_ArrayedCollection { struct _vtable *_vtable[0]; oop v_size; }; struct t_Array { struct _vtable *_vtable[0]; oop v_size; oop v__pointers; }; struct t_ImmutableArray { struct _vtable *_vtable[0]; oop v_size; oop v__pointers; }; struct t_WordArray { struct _vtable *_vtable[0]; oop v_size; oop v__words; }; struct t_ImmutableWordArray { struct _vtable *_vtable[0]; oop v_size; oop v__words; }; struct t_ByteArray { struct _vtable *_vtable[0]; oop v_size; oop v__bytes; }; struct t_ImmutableByteArray { struct _vtable *_vtable[0]; oop v_size; oop v__bytes; }; struct t_String { struct _vtable *_vtable[0]; oop v_size; oop v__bytes; }; struct t_ImmutableString { struct _vtable *_vtable[0]; oop v_size; oop v__bytes; }; struct t_Symbol { struct _vtable *_vtable[0]; oop v_size; oop v__bytes; }; struct t_nil { struct _vtable *_vtable[0]; }; struct t_true { struct _vtable *_vtable[0]; }; struct t_false { struct _vtable *_vtable[0]; }; struct t_CharacterTable { struct _vtable *_vtable[0]; oop v_size; oop v__pointers; }; struct t_SlotVariableNode { struct _vtable *_vtable[0]; oop v_name; oop v_position; oop v_scope; oop v_receiver; oop v_type; }; static oop v__object= 0; static oop v_Object= 0; static oop v_UndefinedObject= 0; static oop v_StaticBlockClosure= 0; static oop v_Magnitude= 0; static oop v_Number= 0; static oop v_Integer= 0; static oop v_LargePositiveInteger= 0; static oop v_Collection= 0; static oop v_SequenceableCollection= 0; static oop v_ArrayedCollection= 0; static oop v_Array= 0; static oop v_WordArray= 0; static oop v_ByteArray= 0; static oop v_String= 0; static oop v_ImmutableString= 0; static oop v_nil= 0; static oop v_false= 0; static oop v_SlotVariableNode= 0; static size_t SlotVariableNode___5fsizeof(oop _closure, oop v_self) { return sizeof(struct t_SlotVariableNode); } static char *SlotVariableNode___5fdebugName(oop _closure, oop v_self) { return "SlotVariableNode"; } static struct __slotinfo *SlotVariableNode___5fslots(oop _closure, oop v_self) { static struct __slotinfo info[]= { { "name", 0, 4 }, { "position", 4, 4 }, { "scope", 8, 4 }, { "receiver", 12, 4 }, { "type", 16, 4 }, { 0, 0, 0 } }; return &info[0]; } static struct __methodinfo __info1= { "initialize", "SlotVariableNode", "/Users/piumarta/src/idst/object/idc/SlotVariableNode.st", 0, 34, 40, 0 }; static oop SlotVariableNode__initialize(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info1); oop _1= 0; _line(34); _1= v_self; _line(36); _1=_superv(v_Object, s_initialize, 1, _1); _1= v_nil; ((struct t_SlotVariableNode *)v_stateful_self)->v_type= _1; _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info2= { "withName:position:scope:", "SlotVariableNode", "/Users/piumarta/src/idst/object/idc/SlotVariableNode.st", 0, 40, 50, &__info1 }; static oop SlotVariableNode__withName_position_scope_(oop v__closure, oop v_stateful_self, oop v_self, oop v_nameString, oop v_scannerPosition, oop v_aScope) { _enter(&__info2); oop _1= 0; _line(40); _1= v_self; _line(42); _1=_sendv(s_new, 1, _1); v_self= _1; v_stateful_self= _1; _1= v_nameString; ((struct t_SlotVariableNode *)v_stateful_self)->v_name= _1; _1= v_scannerPosition; ((struct t_SlotVariableNode *)v_stateful_self)->v_position= _1; _1= v_aScope; ((struct t_SlotVariableNode *)v_stateful_self)->v_scope= _1; _1= v_nil; ((struct t_SlotVariableNode *)v_stateful_self)->v_receiver= _1; _1= v_nil; ((struct t_SlotVariableNode *)v_stateful_self)->v_type= _1; _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info3= { "type:receiver:", "SlotVariableNode", "/Users/piumarta/src/idst/object/idc/SlotVariableNode.st", 0, 50, 56, &__info2 }; static oop SlotVariableNode__type_receiver_(oop v__closure, oop v_stateful_self, oop v_self, oop v_aType, oop v_selfNode) { _enter(&__info3); oop _1= 0; _line(50); _1= v_aType; ((struct t_SlotVariableNode *)v_stateful_self)->v_type= _1; _1= v_selfNode; ((struct t_SlotVariableNode *)v_stateful_self)->v_receiver= _1; _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info4= { "name", "SlotVariableNode", "/Users/piumarta/src/idst/object/idc/SlotVariableNode.st", 0, 56, 57, &__info3 }; static oop SlotVariableNode__name(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info4); oop _1= 0; _line(56); _1= ((struct t_SlotVariableNode *)v_stateful_self)->v_name; _leave(); return _1; _leave(); } static struct __methodinfo __info5= { "scope", "SlotVariableNode", "/Users/piumarta/src/idst/object/idc/SlotVariableNode.st", 0, 57, 59, &__info4 }; static oop SlotVariableNode__scope(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info5); oop _1= 0; _line(57); _1= ((struct t_SlotVariableNode *)v_stateful_self)->v_scope; _leave(); return _1; _leave(); } static struct __methodinfo __info6= { "isGlobal", "SlotVariableNode", "/Users/piumarta/src/idst/object/idc/SlotVariableNode.st", 0, 59, 60, &__info5 }; static oop SlotVariableNode__isGlobal(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info6); oop _1= 0; _line(59); _1= v_false; _leave(); return _1; _leave(); } static struct __methodinfo __info7= { "isFree", "SlotVariableNode", "/Users/piumarta/src/idst/object/idc/SlotVariableNode.st", 0, 60, 62, &__info6 }; static oop SlotVariableNode__isFree(oop v__closure, oop v_stateful_self, oop v_self) { _enter(&__info7); oop _1= 0; _line(60); _1= ((struct t_SlotVariableNode *)v_stateful_self)->v_receiver; _line(60); _1=_sendv(s_isFree, 1, _1); _leave(); return _1; _leave(); } static struct __methodinfo __info8= { "freeWithin:", "SlotVariableNode", "/Users/piumarta/src/idst/object/idc/SlotVariableNode.st", 0, 62, 67, &__info7 }; static oop SlotVariableNode__freeWithin_(oop v__closure, oop v_stateful_self, oop v_self, oop v_innerScope) { _enter(&__info8); oop _1= 0; oop _2= 0; _line(62); _1= ((struct t_SlotVariableNode *)v_stateful_self)->v_receiver; _2= v_innerScope; _line(64); _1=_sendv(s_freeWithin_, 2, _1, _2); _1= v_self; _leave(); return _1; _leave(); } static struct __methodinfo __info9= { "generate:location:", "SlotVariableNode", "/Users/piumarta/src/idst/object/idc/SlotVariableNode.st", 0, 67, 72, &__info8 }; static oop SlotVariableNode__generate_location_(oop v__closure, oop v_stateful_self, oop v_self, oop v_gen, oop v_location) { _enter(&__info9); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; _line(67); _1= v_gen; _2= v_self; _3= ((struct t_SlotVariableNode *)v_stateful_self)->v_type; _4= v_location; _line(69); _1=_sendv(s_loadSlot_type_location_, 4, _1, _2, _3, _4); _leave(); return _1; _leave(); } static struct __methodinfo __info10= { "generateStore:location:", "SlotVariableNode", "/Users/piumarta/src/idst/object/idc/SlotVariableNode.st", 0, 72, 77, &__info9 }; static oop SlotVariableNode__generateStore_location_(oop v__closure, oop v_stateful_self, oop v_self, oop v_gen, oop v_location) { _enter(&__info10); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; _line(72); _1= v_gen; _2= v_self; _3= ((struct t_SlotVariableNode *)v_stateful_self)->v_type; _4= v_location; _line(74); _1=_sendv(s_storeSlot_type_location_, 4, _1, _2, _3, _4); _leave(); return _1; _leave(); } static struct __methodinfo __info11= { "generate:freeIn:location:", "SlotVariableNode", "/Users/piumarta/src/idst/object/idc/SlotVariableNode.st", 0, 77, 82, &__info10 }; static oop SlotVariableNode__generate_freeIn_location_(oop v__closure, oop v_stateful_self, oop v_self, oop v_gen, oop v_innerLevel, oop v_location) { _enter(&__info11); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; oop _5= 0; oop _6= 0; oop _7= 0; _line(77); _1= v_gen; _2= ((struct t_SlotVariableNode *)v_stateful_self)->v_name; _3= ((struct t_SlotVariableNode *)v_stateful_self)->v_type; _line(79); _3=_sendv(s_name, 1, _3); _4= ((struct t_SlotVariableNode *)v_stateful_self)->v_scope; _line(79); _4=_sendv(s_tag, 1, _4); _5= v_innerLevel; _6= ((struct t_SlotVariableNode *)v_stateful_self)->v_scope; _line(79); _6=_sendv(s_level, 1, _6); { int _l= (long)_5 >> 1; int _r= (long)_6 >> 1; int _s= (_l - _r); if ((1 & (long)_5 & (long)_6) && ((_s ^ (_s << 1)) >= 0)) _5= (oop)(long)(_s << 1 | 1); else _5= _sendv(s__2d, 2, _5, _6); } _6= ((struct t_SlotVariableNode *)v_stateful_self)->v_receiver; _line(79); _6=_sendv(s_offset, 1, _6); _7= v_location; _line(79); _1=_sendv(s_loadFreeSlot_type_scope_outer_offset_location_, 7, _1, _2, _3, _4, _5, _6, _7); _leave(); return _1; _leave(); } static struct __methodinfo __info12= { "generateStore:freeIn:location:", "SlotVariableNode", "/Users/piumarta/src/idst/object/idc/SlotVariableNode.st", 0, 82, 86, &__info11 }; static oop SlotVariableNode__generateStore_freeIn_location_(oop v__closure, oop v_stateful_self, oop v_self, oop v_gen, oop v_innerLevel, oop v_location) { _enter(&__info12); oop _1= 0; oop _2= 0; oop _3= 0; oop _4= 0; oop _5= 0; oop _6= 0; oop _7= 0; _line(82); _1= v_gen; _2= ((struct t_SlotVariableNode *)v_stateful_self)->v_name; _3= ((struct t_SlotVariableNode *)v_stateful_self)->v_type; _line(84); _3=_sendv(s_name, 1, _3); _4= ((struct t_SlotVariableNode *)v_stateful_self)->v_scope; _line(84); _4=_sendv(s_tag, 1, _4); _5= v_innerLevel; _6= ((struct t_SlotVariableNode *)v_stateful_self)->v_scope; _line(84); _6=_sendv(s_level, 1, _6); { int _l= (long)_5 >> 1; int _r= (long)_6 >> 1; int _s= (_l - _r); if ((1 & (long)_5 & (long)_6) && ((_s ^ (_s << 1)) >= 0)) _5= (oop)(long)(_s << 1 | 1); else _5= _sendv(s__2d, 2, _5, _6); } _6= ((struct t_SlotVariableNode *)v_stateful_self)->v_receiver; _line(84); _6=_sendv(s_offset, 1, _6); _7= v_location; _line(84); _1=_sendv(s_storeFreeSlot_type_scope_outer_offset_location_, 7, _1, _2, _3, _4, _5, _6, _7); _leave(); return _1; _leave(); } static struct __methodinfo __info= { "__id__init__", "", "SlotVariableNode.st", 0, 0, 0, &__info12 }; void __id__init__SlotVariableNode(struct __libid *__libid) { if (_libid) return; if (!(_libid= __libid)) { fprintf(stderr, "init _libid %p\n", __libid); abort(); } # define GC_add_roots _libid->gc_addRoots GC_INIT(); { struct _Selector *s= 0; for (s= _Selectors; s->name; ++s) *s->addr= _libid->intern(s->name); } _enter(&__info); _libid->infos(&__info, &__info1); _sendv(s__5fimport_, 3, _libid->_object, "Object", "__id__init__Object"); v__object= _libid->import("_object"); v_Object= _libid->import("Object"); v_UndefinedObject= _libid->import("UndefinedObject"); v_StaticBlockClosure= _libid->import("StaticBlockClosure"); v_Magnitude= _libid->import("Magnitude"); v_Number= _libid->import("Number"); v_Integer= _libid->import("Integer"); v_LargePositiveInteger= _libid->import("LargePositiveInteger"); v_Collection= _libid->import("Collection"); v_SequenceableCollection= _libid->import("SequenceableCollection"); v_ArrayedCollection= _libid->import("ArrayedCollection"); v_Array= _libid->import("Array"); v_WordArray= _libid->import("WordArray"); v_ByteArray= _libid->import("ByteArray"); v_String= _libid->import("String"); v_ImmutableString= _libid->import("ImmutableString"); v_nil= _libid->import("nil"); v_false= _libid->import("false"); v_SlotVariableNode= _libid->proto2(v_Object, SlotVariableNode___5fsizeof(0, 0)); _libid->method(v_SlotVariableNode, s__5fsizeof, (_imp_t)SlotVariableNode___5fsizeof); _libid->method(v_SlotVariableNode, s__5fdebugName, (_imp_t)SlotVariableNode___5fdebugName); _libid->method(v_SlotVariableNode, s__5fslots, (_imp_t)SlotVariableNode___5fslots); _libid->export("SlotVariableNode", v_SlotVariableNode); _libid->method(v_SlotVariableNode, s_initialize, (_imp_t)SlotVariableNode__initialize); _libid->method(v_SlotVariableNode, s_withName_position_scope_, (_imp_t)SlotVariableNode__withName_position_scope_); _libid->method(v_SlotVariableNode, s_type_receiver_, (_imp_t)SlotVariableNode__type_receiver_); _libid->method(v_SlotVariableNode, s_name, (_imp_t)SlotVariableNode__name); _libid->method(v_SlotVariableNode, s_scope, (_imp_t)SlotVariableNode__scope); _libid->method(v_SlotVariableNode, s_isGlobal, (_imp_t)SlotVariableNode__isGlobal); _libid->method(v_SlotVariableNode, s_isFree, (_imp_t)SlotVariableNode__isFree); _libid->method(v_SlotVariableNode, s_freeWithin_, (_imp_t)SlotVariableNode__freeWithin_); _libid->method(v_SlotVariableNode, s_generate_location_, (_imp_t)SlotVariableNode__generate_location_); _libid->method(v_SlotVariableNode, s_generateStore_location_, (_imp_t)SlotVariableNode__generateStore_location_); _libid->method(v_SlotVariableNode, s_generate_freeIn_location_, (_imp_t)SlotVariableNode__generate_freeIn_location_); _libid->method(v_SlotVariableNode, s_generateStore_freeIn_location_, (_imp_t)SlotVariableNode__generateStore_freeIn_location_); _leave(); }