[net.emacs] Bug fix in Emacs 17.49 for Sun 2 and Sun 3.

rms@prep.AI.MIT.EDU (02/23/86)

From: rms@prep.AI.MIT.EDU (Richard M. Stallman)
[Note: I have been told that it is not really necessary for Emacs
to redefine hack_sky.  Can anyone get fully to the bottom of this?
This means figuring out how Emacs's hack_sky differs from the standard one
(or whatever is standardly done) and deducing whether the change
is ever necessary.]

Date: Fri, 21 Feb 86 20:01 PST
From: silogic!eggert@LOCUS.UCLA.EDU
To: ucla-cs!bug-gnu-emacs@prep.ai.mit.edu
Subject: GNU Emacs 17.49 bug report: hack_sky() has only bad effects
Cc: ucla-cs!ia-sun2!david@cit-vax.arpa

In GNU Emacs 17.49, the hack_sky() routine loses.  A misplaced label causes
it to copy only the first word in a code sequence.  Copying just the first
word trashes the first entry point while leaving the others in their slow
state.  Most floating point operations will succeed (just as slowly as if
this hack hadn't existed!), but eventually Emacs'll try the first one and
probably dump core.  In our case it dumped core while multiplying 0.3 times
an integer in calculate_ins_del_char_costs(), code that hereabouts is
exercised only on Qume QVT-102s.  Here's the fix.
-- silogic!eggert@ucla-cs.arpa

*** alloca.s.17.49	Fri Feb 21 19:38:53 1986
--- alloca.s	Fri Feb 21 19:50:15 1986
***************
*** 202,208
  hack1:	lea     a1@(0x12),a0	|No Sky board
  hack2:	movw    #0x1a,d0
  	lea     fvflti,a1	|load destination
! 	movl    a0@+,a1@+	|copy table
  	dbra    d0,hack3
  hack3:	moveml  sp@+,#0x0303	|restore registers
  	rts

--- 202,208 -----
  hack1:	lea     a1@(0x12),a0	|No Sky board
  hack2:	movw    #0x1a,d0
  	lea     fvflti,a1	|load destination
! hack3:	movl    a0@+,a1@+	|copy table
  	dbra    d0,hack3
  	moveml  sp@+,#0x0303	|restore registers
  	rts
***************
*** 204,209
  	lea     fvflti,a1	|load destination
  	movl    a0@+,a1@+	|copy table
  	dbra    d0,hack3
! hack3:	moveml  sp@+,#0x0303	|restore registers
  	rts
  #endif sun2

--- 204,209 -----
  	lea     fvflti,a1	|load destination
  hack3:	movl    a0@+,a1@+	|copy table
  	dbra    d0,hack3
! 	moveml  sp@+,#0x0303	|restore registers
  	rts
  #endif sun2