English Amiga Board


Go Back   English Amiga Board > Support > support.WinUAE

 
 
Thread Tools
Old 09 February 2019, 18:48   #261
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 44
Posts: 23,123
68030 short (type $a) bus error stack frame. When does it generate it? If documentation is true, it seems to be quite rare situation.

"For instruction faults, when the short format frame applies, the address of the pipe stage B word is the value in the program counter plus four, and the address of the stage C word is the value in the program counter plus two." And stack frame structure diagram says "PC: Next instruction" and "Execution Unit at Instruction Boundary"

Which would mean following conditions:

It can only happen if prefetch during previous instruction faults. (PC = next)
But only if word pointed by PC (next instruction) was successfully fetched. There is no field in stack frame that contains word at PC+0 ("stage D")

-> it can only happen if first word of next instruction is at MMU page - 2 and following page is invalid. This isn't that common (due to variable instruction sizes). There must be something more because it makes no sense to create shorter (faster) stack frame for rare situation.

Does any whdload qa test generate it?
Toni Wilen is offline  
Old 18 February 2019, 23:12   #262
Wepl
Moderator
Wepl's Avatar
 
Join Date: Nov 2001
Location: Germany
Posts: 689
It seems to be used only on write faults.
Attached a register log. Just search for A008).
Attached Files
File Type: lha whdl_af.lha (62.2 KB, 118 views)
Wepl is offline  
Old 19 February 2019, 12:36   #263
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 44
Posts: 23,123
Thanks.

So it is only generated if data write fault.

This makes sense (except documentation talking about short instruction faults..), if instruction does write at the end, PC has already been increased to beginning of next instruction which means this write happens in instruction boundary = A frame is possible.

But why does A-frame have fields for instruction pipeline stages? Perhaps it is only used internally (CPU can restore already partially decoded instruction state) and for some reason they were documented. Stack frames in register file shows following instruction's opcodes in stack frame dump. But fortunately instruction pipeline stage bits are always zero

EDIT: "Last data write" A-frames seems to work, even Amix still boots.

Last edited by Toni Wilen; 20 February 2019 at 20:16.
Toni Wilen is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
68040 vs 68060 tesla support.Hardware 10 20 April 2013 19:13
68040 MMU jsr/bsr Toni Wilen Coders. General 5 28 April 2010 20:57
68060 fpu not available mmu not active amigarlz support.Hardware 6 18 March 2010 06:35
WTB: 68030 or 68040 accelerator for A2000 Shadowfire MarketPlace 2 19 September 2009 17:52
68030/mmu Support in WinUAE dkovacs request.UAE Wishlist 19 22 August 2005 14:42

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 16:34.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.
Page generated in 0.06312 seconds with 14 queries