[LispM-Hackers] FreeBSD error
James A. Crippen
james@unlambda.com
09 Jan 2002 12:47:53 -0900
Dan Moniz <dnm@pobox.com> writes:
> Check out the file "current-e3-output.txt" on kappa (James, is that file
> accessable via anon CVS?) and compare your output to it.
It's at http://www.unlambda.com/lispm/current-e3-output.txt and I just
updated it two days ago to be in sync with the current CVS sources.
> FWIW, I have the output I got from loading the band on OS X and there are a
> few differences, but they mostly just seem to be differences in format for a
> a number of lines, such as:
>
> current-e3-output.txt firstout.txt (my file)
> --------------------- ----------------------
> pc=2 BR_NOT_NIL_ELSE_POP FEF|#o1 pc=2 BR_NOT_NIL_ELSE_POP disp=#o1
> pc=11 BR_NIL FEF|#o2 pc=11 BR_NIL disp=#o2
> pc=13 BR_ALWAYS_NIL PDL|#o73 pc=13 BR_ALWAYS_NIL disp=#o373
>
> [...]
>
> and others in similar style. Nothing that appears terribly critical though.
> I'll upload my file to kappa sometime today anyway, if I remember.
Your copy of the output is old. Actually, your CVS checkout is old
too, and you should update it.
Currently the output of that FEF dump should look like:
pc=0000 b BR_NOT_NIL disp=#o1
pc=0001 PLUSP PDL|#o77
pc=0002 PUSH FEF|#o54
etc. The one letter code that is next to BR_NOT_NIL indicates that it
is a branch instruction. Only mainops have no code. All other op
classes have particular codes, including a period suffix that
indicates the op is a miscop/moduleop/arefiop that is D-PUSH rather
than D-INDS.
The 'disp=#oXXX' is the *correct* decoding of branchop displacements
(ie, destinations). Previously the displacements were being decoded
as base-register|offset as with other mainops.
'james
--
James A. Crippen <james@unlambda.com> ,-./-. Anchorage, Alaska,
Lambda Unlimited: Recursion 'R' Us | |/ | USA, 61.20939N, -149.767W
Y = \f.(\x.f(xx)) (\x.f(xx)) | |\ | Earth, Sol System,
Y(F) = F(Y(F)) \_,-_/ Milky Way.