| |
|
| : field ( offset1 align1 size align -- offset2 align2 ) |
: field ( offset1 align1 size align -- offset2 align2 ) |
| \ note: this version uses local variables |
\ note: this version uses local variables |
| Header reveal -7 ( [ :dostruc ] Literal ) cfa, |
Header reveal dofield: cfa, |
| >r rot r@ nalign dup , ( align1 size offset ) |
>r rot r@ nalign dup , ( align1 size offset ) |
| + swap r> nalign ; |
+ swap r> nalign ; |
| |
|
| : floats: ( n -- size align ) |
: floats: ( n -- size align ) |
| floats 1 floats ; |
floats 1 floats ; |
| |
|
| \ dfoats and sfloats is not yet defined |
: dfloats: ( n -- size align ) |
| \ : dfloats: ( n -- size align ) |
dfloats 1 dfloats ; |
| \ dfloats 1 dfloats ; |
|
| \ |
: sfloats: ( n -- size align ) |
| \ : sfloats: ( n -- size align ) |
sfloats 1 sfloats ; |
| \ sfloats 1 sfloats ; |
|
| |
|
| : struct-align ( size align -- ) |
: struct-align ( size align -- ) |
| dp @ swap nalign dp ! |
dp @ swap nalign dp ! |
| over swap struct-align |
over swap struct-align |
| here swap allot ; |
here swap allot ; |
| |
|
| : struct-allocate ( size align -- addr ) |
: struct-allocate ( size align -- addr ior ) |
| drop allocate ; |
drop allocate ; |