On 02/08/2018 09:58 AM, Heiko Carstens wrote: > If you look at the generated code for the first patch: gcc now generates > its own jump table which then jumps (indirectly) to a brasl... So it's two > instead of one branch. > I'm not saying that this patch is not good, but there seem be a wrong > assumptions about the benefit here. I will now use the following patch description. KVM: s390: use switch vs jump table in intercept.c Instead of having huge jump tables for function selection, let's use normal switch/case statements for the instruction handlers in intercept.c We can now also get rid of intercept_handler_t. This allows the compiler to make the right decision depending on the situation (e.g. avoid jump-tables for thunks). Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Reviewed-by: Janosch Frank <frankja@xxxxxxxxxxxxxxxxxx> Reviewed-by: David Hildenbrand <david@xxxxxxxxxx> Reviewed-by: Cornelia Huck <cohuck@xxxxxxxxxx> commit cf392b582009f8ee4ef859f935dd9f67f855ccaf Author: Christian Borntraeger <borntraeger@xxxxxxxxxx> AuthorDate: Fri Apr 8 17:52:39 2016 +0200 Commit: Christian Borntraeger <borntraeger@xxxxxxxxxx> CommitDate: Thu Feb 8 10:07:42 2018 +0000 KVM: s390: use switch vs jump table in priv.c Instead of having huge jump tables for function selection, let's use normal switch/case statements for the instruction handlers in priv.c This allows the compiler to make the right decision depending on the situation (e.g. avoid jump-tables for thunks). Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Reviewed-by: Cornelia Huck <cohuck@xxxxxxxxxx> Reviewed-by: Janosch Frank <frankja@xxxxxxxxxxxxxxxxxx> Reviewed-by: David Hildenbrand <david@xxxxxxxxxx>