yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::emu::debug::CallStackEntry Struct Reference

Tracks call stack for intelligent stepping. More...

#include <step_controller.h>

Public Member Functions

 CallStackEntry (uint32_t call, uint32_t target, uint32_t ret, bool long_call)
 

Public Attributes

uint32_t call_address
 
uint32_t target_address
 
uint32_t return_address
 
bool is_long
 
std::string symbol
 

Detailed Description

Tracks call stack for intelligent stepping.

The 65816 uses these instructions for subroutine calls:

  • JSR (opcode 0x20): Jump to Subroutine (16-bit address, pushes PC+2)
  • JSL (opcode 0x22): Jump to Subroutine Long (24-bit address, pushes PB + PC+3)

And these for returns:

  • RTS (opcode 0x60): Return from Subroutine (pulls PC)
  • RTL (opcode 0x6B): Return from Subroutine Long (pulls PB + PC)
  • RTI (opcode 0x40): Return from Interrupt (pulls status, PC, PB)

Definition at line 27 of file step_controller.h.

Constructor & Destructor Documentation

◆ CallStackEntry()

yaze::emu::debug::CallStackEntry::CallStackEntry ( uint32_t call,
uint32_t target,
uint32_t ret,
bool long_call )
inline

Definition at line 34 of file step_controller.h.

Member Data Documentation

◆ call_address

uint32_t yaze::emu::debug::CallStackEntry::call_address

Definition at line 28 of file step_controller.h.

◆ target_address

uint32_t yaze::emu::debug::CallStackEntry::target_address

Definition at line 29 of file step_controller.h.

◆ return_address

uint32_t yaze::emu::debug::CallStackEntry::return_address

Definition at line 30 of file step_controller.h.

◆ is_long

bool yaze::emu::debug::CallStackEntry::is_long

Definition at line 31 of file step_controller.h.

◆ symbol

std::string yaze::emu::debug::CallStackEntry::symbol

Definition at line 32 of file step_controller.h.


The documentation for this struct was generated from the following file: