Контрольно-пропускной пункт возобновления утверждения броска - ARM Arch
Я пытаюсь создать и возобновить с контрольной точки для скомпилированного двоичного файла ARM (LLVM Test Suite).
Я кросс-скомпилировал LLVM Test Suite с помощью следующей команды в Makefile:
./arm-linux-gnueabihf-gcc -O0 -ggdb3 -std = c99 -static $<-o $ @
(в основном используется кросс-компилятор arm-linux-gnueabihf-gcc версии 7.4)
Я создал контрольные точки с помощью следующей команды:
./build/ARM/gem5.opt --outdir = chkpt_only / configs / example / se.py --checkpoint-dir chkpt_only / --take-checkpoints = 0,20000000000 --cpu-type = AtomicSimpleCPU --cmd =../../../Benchmarks/LLVM_Test_Suite/SingleSource/Benchmarks/Stanford/Towers
Я попытался возобновить с контрольной точки с помощью следующей команды:
./build/ARM/gem5.opt --outdir = chkpt_only / configs / example / se.py -r 1 --checkpoint-dir chkpt_only / --cpu-type = O3_ARM_v7a_3 --caches --cmd =.. /../../Benchmarks/LLVM_Test_Suite/SingleSource/Benchmarks/Stanford/Towers
Выше, кажется, работает, когда --cpu-type
является In-order
но для любого процессора O3 я получаю следующее утверждение:
gem5.opt: build/ARM/cpu/o3/rename_map.hh:282: const PhysRegId* UnifiedRenameMap::lookup(const RegId&) const: утверждение `vecMode == Enums::Elem'не выполнено.
Может кто-нибудь, пожалуйста, помогите мне понять / исправить это утверждение?
PS: git commit это 2775f55447edb344d99f30273ad93fea515d7e2b