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