LazDebuggerGdbmi: Add support for "avr" cpu. Patch by Dimitrios Chr. Ioannidis

git-svn-id: trunk@61524 -
This commit is contained in:
martin 2019-07-03 21:27:10 +00:00
parent f16bb3b1b9
commit ba6f9cd2c8
2 changed files with 14 additions and 2 deletions

View File

@ -1705,6 +1705,8 @@ begin
lcCpu := LowerCase(CpuName); lcCpu := LowerCase(CpuName);
if (lcCpu='ia64') or (lcCpu='x86_64') or (lcCpu='aarch64') or (lcCpu='powerpc64') if (lcCpu='ia64') or (lcCpu='x86_64') or (lcCpu='aarch64') or (lcCpu='powerpc64')
then Result := 8; then Result := 8;
if (lcCpu='avr')
then Result := 2;
end; end;
{$IFDEF MSWindows} {$IFDEF MSWindows}
@ -2442,7 +2444,8 @@ begin
'pei-arm-little', 'pei-arm-little',
'pei-arm-big', 'pei-arm-big',
'elf64-littleaarch64', 'elf64-littleaarch64',
'elf64-bigaarch64' 'elf64-bigaarch64',
'elf32-avr'
], True, False) of ], True, False) of
0..3: TargetInfo^.TargetCPU := 'x86'; 0..3: TargetInfo^.TargetCPU := 'x86';
4: TargetInfo^.TargetCPU := 'x86_64'; //TODO: should we check, PtrSize must be 8, but what if not? 4: TargetInfo^.TargetCPU := 'x86_64'; //TODO: should we check, PtrSize must be 8, but what if not?
@ -2489,6 +2492,9 @@ begin
TargetInfo^.TargetIsBE := True; TargetInfo^.TargetIsBE := True;
TargetInfo^.TargetCPU := 'aarch64'; TargetInfo^.TargetCPU := 'aarch64';
end; end;
12: begin
TargetInfo^.TargetCPU := 'avr';
end;
else else
// Unknown filetype, use GDB cpu // Unknown filetype, use GDB cpu
DebugLn(DBG_WARNINGS, '[WARNING] [Debugger.TargetInfo] Unknown FileType: %s, using GDB cpu', [AFileType]); DebugLn(DBG_WARNINGS, '[WARNING] [Debugger.TargetInfo] Unknown FileType: %s, using GDB cpu', [AFileType]);
@ -2503,7 +2509,7 @@ begin
case StringCase(TargetInfo^.TargetCPU, [ case StringCase(TargetInfo^.TargetCPU, [
'x86', 'i386', 'i486', 'i586', 'i686', 'x86', 'i386', 'i486', 'i586', 'i686',
'ia64', 'x86_64', 'powerpc', 'powerpc64', 'ia64', 'x86_64', 'powerpc', 'powerpc64',
'sparc', 'arm', 'aarch64' 'sparc', 'arm', 'aarch64', 'avr'
], True, False) of ], True, False) of
0..4: begin // x86 0..4: begin // x86
TargetInfo^.TargetRegisters[0] := '$eax'; TargetInfo^.TargetRegisters[0] := '$eax';
@ -2563,6 +2569,11 @@ begin
TargetInfo^.TargetRegisters[1] := '$x1'; TargetInfo^.TargetRegisters[1] := '$x1';
TargetInfo^.TargetRegisters[2] := '$x2'; TargetInfo^.TargetRegisters[2] := '$x2';
end; end;
12: begin // avr
TargetInfo^.TargetRegisters[0] := '$r0';
TargetInfo^.TargetRegisters[1] := '$r1';
TargetInfo^.TargetRegisters[2] := '$r2';
end;
else else
TargetInfo^.TargetRegisters[0] := ''; TargetInfo^.TargetRegisters[0] := '';
TargetInfo^.TargetRegisters[1] := ''; TargetInfo^.TargetRegisters[1] := '';

View File

@ -60,6 +60,7 @@ Denis Golovan
Denis Kozlov Denis Kozlov
Denis Volodarsky Denis Volodarsky
Derit Agustin Derit Agustin
Dimitrios Chr. Ioannidis
Diogo Piçarra Diogo Piçarra
Dirk Schiphorst Dirk Schiphorst
Dmitry Boyarintsev Dmitry Boyarintsev