Debugger: Fixed register labels not being used for addresses (roughly) outside the $2000-$5FFF range
This commit is contained in:
parent
54b4604d7c
commit
a46493c6bd
2 changed files with 15 additions and 11 deletions
|
@ -52,7 +52,7 @@ int32_t LabelManager::GetLabelAddress(uint32_t absoluteAddr, AddressType address
|
|||
return absoluteAddr;
|
||||
}
|
||||
|
||||
int32_t LabelManager::GetLabelAddress(uint16_t relativeAddr, bool checkRegisters)
|
||||
int32_t LabelManager::GetLabelAddress(uint16_t relativeAddr)
|
||||
{
|
||||
if(relativeAddr < 0x2000) {
|
||||
return relativeAddr | 0x70000000;
|
||||
|
@ -74,11 +74,6 @@ int32_t LabelManager::GetLabelAddress(uint16_t relativeAddr, bool checkRegisters
|
|||
//Save RAM
|
||||
return addr | 0x40000000;
|
||||
}
|
||||
|
||||
//Register
|
||||
if(checkRegisters) {
|
||||
return relativeAddr | 0x30000000;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
|
@ -86,7 +81,7 @@ int32_t LabelManager::GetLabelAddress(uint16_t relativeAddr, bool checkRegisters
|
|||
|
||||
string LabelManager::GetLabel(uint16_t relativeAddr, bool checkRegisters)
|
||||
{
|
||||
int32_t labelAddr = GetLabelAddress(relativeAddr, checkRegisters);
|
||||
int32_t labelAddr = GetLabelAddress(relativeAddr);
|
||||
|
||||
if(labelAddr >= 0) {
|
||||
auto result = _codeLabels.find(labelAddr);
|
||||
|
@ -95,12 +90,21 @@ string LabelManager::GetLabel(uint16_t relativeAddr, bool checkRegisters)
|
|||
}
|
||||
}
|
||||
|
||||
if(checkRegisters) {
|
||||
labelAddr = relativeAddr | 0x30000000;
|
||||
|
||||
auto result = _codeLabels.find(labelAddr);
|
||||
if(result != _codeLabels.end()) {
|
||||
return result->second;
|
||||
}
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
string LabelManager::GetComment(uint16_t relativeAddr)
|
||||
{
|
||||
int32_t labelAddr = GetLabelAddress(relativeAddr, false);
|
||||
int32_t labelAddr = GetLabelAddress(relativeAddr);
|
||||
|
||||
if(labelAddr >= 0) {
|
||||
auto result = _codeComments.find(labelAddr);
|
||||
|
@ -114,7 +118,7 @@ string LabelManager::GetComment(uint16_t relativeAddr)
|
|||
|
||||
void LabelManager::GetLabelAndComment(uint16_t relativeAddr, string &label, string &comment)
|
||||
{
|
||||
int32_t labelAddr = GetLabelAddress(relativeAddr, false);
|
||||
int32_t labelAddr = GetLabelAddress(relativeAddr);
|
||||
|
||||
if(labelAddr >= 0) {
|
||||
auto result = _codeLabels.find(labelAddr);
|
||||
|
@ -164,7 +168,7 @@ int32_t LabelManager::GetLabelRelativeAddress(string &label)
|
|||
|
||||
bool LabelManager::HasLabelOrComment(uint16_t relativeAddr)
|
||||
{
|
||||
int32_t labelAddr = GetLabelAddress(relativeAddr, true);
|
||||
int32_t labelAddr = GetLabelAddress(relativeAddr);
|
||||
|
||||
if(labelAddr >= 0) {
|
||||
return
|
||||
|
|
|
@ -27,7 +27,7 @@ private:
|
|||
shared_ptr<BaseMapper> _mapper;
|
||||
|
||||
int32_t GetLabelAddress(uint32_t absoluteAddr, AddressType addressType);
|
||||
int32_t GetLabelAddress(uint16_t relativeAddr, bool checkRegisters);
|
||||
int32_t GetLabelAddress(uint16_t relativeAddr);
|
||||
|
||||
public:
|
||||
LabelManager(shared_ptr<BaseMapper> mapper);
|
||||
|
|
Loading…
Add table
Reference in a new issue