[Openmcl-devel] A little more LAP stuff...
Jon S. Anthony
j-anthony at comcast.net
Tue Feb 16 19:18:00 UTC 2010
Up front - thanks for all the great info already offered on previous
Looking over some LAP functions and disassembling some user level lisp
functions, my question(s) is what (or whether) there is any difference
between the two approaches used in these for the X86 register toggle
tagging between immediate/node indications.
In user level lisp, this typically seems to use btrl to reset bit
indicating immediate and btsl to set bit indicating node. For example:
 (btrl ($ 1) (@ (% fs) 8)) ; indicate immo is immediate
 (movl (@ -2 (% arg_z)) (% imm0)) ; load it up...
 (btsl ($ 1) (@ (% fs) 8)) ; indicate immo is node
This same thing in LAP functions where (mark-as-imm ...) and
(mark-as-node ...) are used is:
;; (mark-as-imm immo)
 (andb ($ 254) (@ (% fs) 8)) ; indicate immo is immediate
;; (mark-as-node imm0)
 (xorl (% imm0) (% imm0)) ; always there, but unclear about it
 (orb ($ 1) (@ (% fs) 8)) ; indicate immo is node
Is there any real difference between these for the intended task?
More information about the Openmcl-devel