On 7/8/21 5:30 PM, Laurent Vivier wrote: > Le 08/07/2021 à 16:11, Philippe Mathieu-Daudé a écrit : >> Convert the host_to_target_errno_table[] array to a switch case >> to allow compiler optimizations. Extract the errnos list as to >> a new includible unit, using a generic macro. Remove the code >> related to target_to_host_errno_table[] initialization. >> > > Is there some performance penalties by using a switch() rather than an > array[] ?
Per Richard suggestion https://www.mail-archive.com/qemu-devel@nongnu.org/msg821488.html rather the opposite, it might be now easier for the compiler to optimize. And we free unused entries in the array (.rodata). >> Suggested-by: Richard Henderson <richard.hender...@linaro.org> >> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> >> --- >> linux-user/syscall.c | 169 +++++----------------------------------- >> linux-user/errnos.c.inc | 140 +++++++++++++++++++++++++++++++++ >> 2 files changed, 161 insertions(+), 148 deletions(-) >> create mode 100644 linux-user/errnos.c.inc >> > ... >> diff --git a/linux-user/errnos.c.inc b/linux-user/errnos.c.inc >> new file mode 100644 >> index 00000000000..807c97ca25e >> --- /dev/null >> +++ b/linux-user/errnos.c.inc >> @@ -0,0 +1,140 @@ > ... >> +#ifdef ERKFILL > > You fix it in patch 1 but forgot to report it in your patch :) Grrr :(