You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
How to understand the "convert from an invlid address into some other invalid address"? why the converted address is also called invalid?
Does this relate to address size problem? that's to say for a PAW(PA width)=VAW(VA width) =48 hart, if pc=0xFFFF_ABCD_0000_0000,exception raise, then mepc should save a 48-bit PC( 0xABCD_0000_0000), not the 0xFFFF_ABCD_0000_0000?
mepc is a WARL register that must be able to hold all valid virtual addresses. It need not be capable of
holding all possible invalid addresses. Prior to writing mepc , implementations may convert an invalid
address into some other invalid address that mepc is capable of holding.
The text was updated successfully, but these errors were encountered:
You should (must) not convert an invalid address into a valid address. But you can convert an invalid address tha tis not representable in mepc to another invalid address that IS representable in mepc. This allows one to not have to represent all possible 64-bit address values if the largest supported valid address is less than 64 bits.
You should (must) not convert an invalid address into a valid address. But you can convert an invalid address tha tis not representable in mepc to another invalid address that IS representable in mepc. This allows one to not have to represent all possible 64-bit address values if the largest supported valid address is less than 64 bits.
OK, I see, that 's for the case when the largest supported valid address is less than 64 bits, people can just use the max valid address size in mepc register. Thanks!
Or maybe the max valid address size plus one extra bit, so that it's straightforward to synthesize a different bad address. But yes, you have the right idea.
How to understand the "convert from an invlid address into some other invalid address"? why the converted address is also called invalid?
Does this relate to address size problem? that's to say for a PAW(PA width)=VAW(VA width) =48 hart, if pc=0xFFFF_ABCD_0000_0000,exception raise, then mepc should save a 48-bit PC( 0xABCD_0000_0000), not the 0xFFFF_ABCD_0000_0000?
The text was updated successfully, but these errors were encountered: