On Tuesday, August 4, 1998 at 3:00:00 AM UTC-4, Jeff Daly wrote:
pls excuse this if it in a funny font, i had to change over to
communicator.
Emory R. Stagmer wrote:
In trying to provide a floating point emulation package for a MIPS R3000(like) processor,
I need to return back to the NEXT instruction past the Error Program Counter (EPC).
It seems the wrapper function for de-muxing the interrupt is mucking
with the stack pointer
(sp) and saving/restoring registers for me. I need to know:
1) What registers do I REALLY need to save?
2) Can/Should I handle the return from exception myself?
3) Where is the stack really? Interrupt Stack? Task Stack?
yes, the stack pointer gets set to vxIntStackBase - ESTKSIZE.all general purpose registers are saved for you. MUL_HI and MUL_LO are
not, nor are any FP regs. i suggest not doing the return yourself.
caveat to the first statement... unless you are a nested interrupt, you
get stack offset from the first by ESTKSIZE. of course, be careful
using k0/k1 registers...
I'm connecting my routine via intVecSet(). My routine is assembler, not
C (otherwise
I know I'd need to use intConnect() ).
ANY help/comments/ideas are appreciated.
--
Emory R. Stagmer
If anyone ever should need this information, we did eventually solve this problem - it took quite a bit for the full emulation, but as this was done on a NASA contract I can provide both source code and a 9 page white paper on the solution.
-- Emory @VAXHeadroom
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)