A few more: // ?????: shift-arg ( -- reg ) ECX ;
// ?????: div-arg ( -- reg ) EAX ;
// ?????: mod-arg ( -- reg ) EDX ;
From: mclag...@hotmail.com
To: factor-talk@lists.sourceforge.net
Date: Fri, 17 Aug 2012 14:03:30 +0000
Subject: Re: [Factor-talk] Any way of making sense of what's in the boot image?
// ?????
: pic-tail-reg ( -- reg ) EDX ;
// stack pointer
: stack-reg ( -- reg ) ESP ;
// stack frame pointer
: frame-reg ( -- reg ) EBP ;
// virtual machine object base
: vm-reg ( -- reg ) EBX ;
: ctx-reg ( -- reg ) EBP ;
// non-volatile registers -- these would be registers needing to be preserved
(and that callers can count on being preserved)?
: nv-regs ( -- seq ) { ESI EDI EBX } ;
// volatile registers -- these would be registers one is free to use (and that
callers cannot count on being preserved)?
: volatile-regs ( -- seq ) { EAX ECX EDX } ;
// ?????
: nv-reg ( -- reg ) ESI ;
// ?????
: ds-reg ( -- reg ) ESI ;
// ?????
: rs-reg ( -- reg ) EDI ;
// ?????
: link-reg ( -- reg ) EBX ;
Would anybody be able to validate assumptions articulated above and fill in
missing pieces. This is good foundational knowledge to operate in general with.
From: mclag...@hotmail.com
Date: Thu, 16 Aug 2012 13:15:48 -0400
To: factor-talk@lists.sourceforge.net
Subject: Re: [Factor-talk] Any way of making sense of what's in the boot
image?
Great, thanks.
Sent from my iPhone
On Aug 16, 2012, at 1:11 PM, "John Benediktsson" <mrj...@gmail.com> wrote:
So then, John, does that mean that in the [ 4 slot { array} declare ], that
I'm getting the slot named "array" which is at offset 4 (and then declaring
that to be an array, so as to disable some of the type safety checks)?
Yes, the hashtable code is written at a bit lower level and thus maybe a little
harder to read than one might normally write in Factor since it is one of the
building blocks that everything is built upon. It is also possible that some
of the compiler optimizations that have been written in the last couple of
years make some of those declarations unnecessary, although I'd have to look
into it more to know for sure.
Also, due to the bootstrapping mechanism, some of the higher level language
constructs like locals and fry quotations are not available yet. That is
something we hope to fix at some future point.
Here it says slot takes two incoming values: an obj and a non-negative
fixnum, which is the nth slot. In the hashtable slot-specs you list below
there are only three slots listed, but it does say that the slot named "array"
is at offset 4. Is it this offset number that is being specified by the "m"
parameter? And thus is the array I am seeing in my original description the
contents of the "array" slot of the hashtable that was originally on the stack?
That makes sense to me. And the fact that the array is 128 slots long
(allowing flattened representation of 64 key-value pairs) just means that the
underlying array in the hashtable has 64 buckets. Is this a correct
interpretation. If it is, it makes sense that the actual 26 values stored in
the hash table would be dispersed throught the 64 buckets, because this is what
a hashtable does.
Yes, exactly! The "slot-spec" tuple provides a generic description of what is
to be found in this case at offset 4.
Best,
John.
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats.
http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk