- Added a define which marks the use of BPRangeListener

- Gem5 now has two different implementation for breakpoints.
  - If only BPSingleListener are used, gem5 Breakpoints are used
  - If BPRangeListener are used, gem5 calls onBreakpoint() in every simulated instruction

git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@2003 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
This commit is contained in:
friemel
2013-01-16 15:27:06 +00:00
parent ac7cec7684
commit afca00ce0a
4 changed files with 12 additions and 3 deletions

View File

@ -377,6 +377,12 @@ BaseSimpleCPU::preExecute()
TheISA::PCState pcState = thread->pcState(); TheISA::PCState pcState = thread->pcState();
// FAIL*
#if defined(CONFIG_EVENT_BREAKPOINTS) && defined(CONFIG_EVENT_RANGEBREAKPOINTS)
fail::ConcreteCPU* cpu = &fail::simulator.getCPU(cpuId());
fail::simulator.onBreakpoint(cpu, instAddr(), -1);
#endif
if (isRomMicroPC(pcState.microPC())) { if (isRomMicroPC(pcState.microPC())) {
stayAtPC = false; stayAtPC = false;
curStaticInst = microcodeRom.fetchMicroop(pcState.microPC(), curStaticInst = microcodeRom.fetchMicroop(pcState.microPC(),

View File

@ -3,6 +3,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/VariantConfig.hpp.in
${CMAKE_CURRENT_BINARY_DIR}/VariantConfig.hpp) ${CMAKE_CURRENT_BINARY_DIR}/VariantConfig.hpp)
OPTION(CONFIG_EVENT_BREAKPOINTS "Event source: Breakpoints" OFF) OPTION(CONFIG_EVENT_BREAKPOINTS "Event source: Breakpoints" OFF)
OPTION(CONFIG_EVENT_RANGEBREAKPOINTS "Event source: Range Breakpoints" OFF)
OPTION(CONFIG_EVENT_MEMREAD "Event source: Memory reads" OFF) OPTION(CONFIG_EVENT_MEMREAD "Event source: Memory reads" OFF)
OPTION(CONFIG_EVENT_MEMWRITE "Event source: Memory writes" OFF) OPTION(CONFIG_EVENT_MEMWRITE "Event source: Memory writes" OFF)
OPTION(CONFIG_EVENT_GUESTSYS "Event source: Outbound guest-system communication" OFF) OPTION(CONFIG_EVENT_GUESTSYS "Event source: Outbound guest-system communication" OFF)

View File

@ -7,6 +7,7 @@
// Event sources // Event sources
#cmakedefine CONFIG_EVENT_BREAKPOINTS #cmakedefine CONFIG_EVENT_BREAKPOINTS
#cmakedefine CONFIG_EVENT_RANGEBREAKPOINTS
#cmakedefine CONFIG_EVENT_MEMREAD #cmakedefine CONFIG_EVENT_MEMREAD
#cmakedefine CONFIG_EVENT_MEMWRITE #cmakedefine CONFIG_EVENT_MEMWRITE
#cmakedefine CONFIG_EVENT_GUESTSYS #cmakedefine CONFIG_EVENT_GUESTSYS

View File

@ -1,9 +1,10 @@
#ifndef __GEM5_LISTENER_AH__ #ifndef __GEM5_LISTENER_AH__
#define __GEM5_LISTENER_AH__ #define __GEM5_LISTENER_AH__
#include "config/FailConfig.hpp"
#include "config/VariantConfig.hpp" #include "config/VariantConfig.hpp"
#if defined(BUILD_GEM5) #if defined(BUILD_GEM5) && defined(CONFIG_EVENT_BREAKPOINTS) && !defined(CONFIG_EVENT_RANGEBREAKPOINTS)
#include "../SALInst.hpp" #include "../SALInst.hpp"
@ -41,6 +42,6 @@ aspect Gem5Listener {
}; };
}; };
#endif // defined(BUILD_GEM5) #endif // defined(BUILD_GEM5) && defined(CONFIG_EVENT_BREAKPOINTS) && !defined(CONFIG_EVENT_RANGEBREAKPOINTS)
#endif // __GEM5_LISTENER_AH__ #endif // __GEM5_LISTENER_AH__