Subject: Re: Shared libs
To: None <jonb@ons.octel.com>
From: Phil Nelson <phil@cs.wwu.edu>
List: port-pc532
Date: 01/19/1995 09:48:59
>Well, the 1.0 sources I have do NOT have SMALL_INV in locore.s anywhere.
>After looking at every ENTRY(*) in the file, I found trap_flg, but no
>#if's. So I just did a 'tar zxvpf comp.tar.gz' to fix it. 8-( I'll
OK, here is the _trap_flg version that appeared to fix my problems with
shared libs. I do not have SMALL_INV defined and this will be cleaned up
soon. It appears that the SMALL_INV code gets logical addresses and uses
them to invalidate physical addresses ... which is the wrong thing to do.
The else part just invalidates all the instruction cache instead of trying
to figure out which one is needed. Matthias has been working on a
fix to this, but it is possible we will leave it with just invalidating the
entire cache as possible being the fastest solution.
After you get this fix in your 1.0 locore.s, try again to get shared libs
going.
ENTRY(_trap_flg)
#if SMALL_INV
cinv i, r0 /* Invalidate first line */
addd r1, r0
cinv i, r0 /* Invalidate possible second line */
#else
sprd cfg, r0 /* Trying something different! PAN */
bicd CFG_INS, r0
lprd cfg, r0
ord CFG_INS, r0
lprd cfg, r0
#endif
addqd 1, tos /* Increment return address */
rett 0
--Phil