Added new configuration option --with-sim=SIM used to determine the simulator for testing purposes. To run the desired tests, utilize the following command: make check-newlib for bare-metal, make check-linux for Linux, or make report for a test run culminating in a final report.
Simulator
Option
QEMU
--with-sim=qemu (default)
nSIM
--with-sim=nsim
When conducting tests for newlib and opting to use nSIM as the simulator, the tool must be in the environment variable $PATH to proceed.
Note: It should be noted that selecting nSIM is not possible if building the Linux Toolchain since it does not support user mode.
When using the nSIM simulator, missing configurations, such as enabling STD instructions with sim_isa_ll64_option=1, can result in aborts. This will cause an abort with an error message similar to: 13:00:27.894801 ERROR:[CPU0] Encountered 'InstructionError' exception while this exception is disabled in nSIM - halting. PC:0x000002c4 EFA:0x000002c4 ECR:0x00020000. Interestingly, this abort is perceived as a PASS by dejagnu which is evident from the following message:
spawn arc-elf32-run strrchr.x3
ERROR:[CPU0] Encountered 'InstructionError' exception while this exception is disabled in nSIM - halting. PC:0x00000130 EFA:0x00000130 ERC:0x00020000
PASS: gcc.c-torture/execute/buildins/strrchr.c execution, -O3 -g.
Therefore, there could be an issue with how dejagnu interprets the abort exception from nSIM.
Summary
Added new configuration option
--with-sim=SIM
used to determine the simulator for testing purposes. To run the desired tests, utilize the following command:make check-newlib
for bare-metal,make check-linux
for Linux, ormake report
for a test run culminating in a final report.--with-sim=qemu
(default)--with-sim=nsim
When conducting tests for
newlib
and opting to usenSIM
as the simulator, the tool must be in the environment variable$PATH
to proceed.Note:
It should be noted that selecting nSIM is not possible if building the Linux Toolchain since it does not support user mode.Test Result
ARC64
ARCv2
The significant difference in test results for ARCv2 between QEMU and nSIM is due to the absence of the floating point implementation, which is currently being reviewed in the pull request https://github.com/foss-for-synopsys-dwc-arc-processors/qemu/pull/168 .
If using the
bruno_fpu_v2
branch, the results are the following:Disclaimer
When using the nSIM simulator, missing configurations, such as enabling STD instructions with
sim_isa_ll64_option=1
, can result in aborts. This will cause an abort with an error message similar to:13:00:27.894801 ERROR:[CPU0] Encountered 'InstructionError' exception while this exception is disabled in nSIM - halting. PC:0x000002c4 EFA:0x000002c4 ECR:0x00020000
. Interestingly, this abort is perceived as a PASS by dejagnu which is evident from the following message:Therefore, there could be an issue with how dejagnu interprets the abort exception from nSIM.