Is it a normal user-mode instruction?
No. These instructions are constrained by privilege level and extension support; user-mode legality must follow the privileged rules.
Debug mode return: PC<-dpc, restore privilege. Only in D-mode.
DRET returns from Debug Mode (D-mode) to normal execution. Operation: 1) PC←dpc (debug program counter); 2) restore privilege mode from before debug entry. Only legal in D-mode. DRET has no interrupt-enable restoration — debug mode does not manage interrupts via mstatus.
DRET is a system-level instruction defined by the debug specification. This page covers architectural semantics only, not platform firmware policy.
Understand this scenario with real code like «dret».
Understand this scenario with real code like «dret».
No. These instructions are constrained by privilege level and extension support; user-mode legality must follow the privileged rules.
No. Address translation, instruction fetch, and data-memory ordering use different fence/invalidation instructions.