Blue Swirl <[email protected]> writes: > SSE function tables could easily be corrupted because of use > of void pointers. > > Introduce function pointer types and helper variables in order > to improve type safety. > > Split sse_op_table3 according to types used. > > Signed-off-by: Blue Swirl <[email protected]>
Clean build on master (commit 71ea2e01): [...] CC i386-softmmu/target-i386/translate.o /home/armbru/work/qemu/target-i386/translate.c: In function ‘gen_sse’: /home/armbru/work/qemu/target-i386/translate.c:3571:27: warning: assignment from incompatible pointer type [enabled by default] /home/armbru/work/qemu/target-i386/translate.c:3573:17: error: incompatible type for argument 2 of ‘sse_fn_pl’ /home/armbru/work/qemu/target-i386/translate.c:3573:17: note: expected ‘TCGv_i64’ but argument is of type ‘TCGv_i32’ /home/armbru/work/qemu/target-i386/translate.c:3633:28: warning: assignment from incompatible pointer type [enabled by default] /home/armbru/work/qemu/target-i386/translate.c:3636:17: error: incompatible type for argument 1 of ‘sse_fn_l_p’ /home/armbru/work/qemu/target-i386/translate.c:3636:17: note: expected ‘TCGv_i64’ but argument is of type ‘TCGv_i32’ make[1]: *** [target-i386/translate.o] Error 1 [...] CC x86_64-softmmu/target-i386/translate.o /home/armbru/work/qemu/target-i386/translate.c:2953:5: warning: initialization from incompatible pointer type [enabled by default] /home/armbru/work/qemu/target-i386/translate.c:2953:5: warning: (near initialization for ‘sse_op_table3a[2]’) [enabled by default] /home/armbru/work/qemu/target-i386/translate.c:2954:5: warning: initialization from incompatible pointer type [enabled by default] /home/armbru/work/qemu/target-i386/translate.c:2954:5: warning: (near initialization for ‘sse_op_table3a[3]’) [enabled by default] /home/armbru/work/qemu/target-i386/translate.c:2960:5: warning: initialization from incompatible pointer type [enabled by default] /home/armbru/work/qemu/target-i386/translate.c:2960:5: warning: (near initialization for ‘sse_op_table3b[2]’) [enabled by default] /home/armbru/work/qemu/target-i386/translate.c:2961:5: warning: initialization from incompatible pointer type [enabled by default] /home/armbru/work/qemu/target-i386/translate.c:2961:5: warning: (near initialization for ‘sse_op_table3b[3]’) [enabled by default] /home/armbru/work/qemu/target-i386/translate.c:2965:5: warning: initialization from incompatible pointer type [enabled by default] /home/armbru/work/qemu/target-i386/translate.c:2965:5: warning: (near initialization for ‘sse_op_table3b[6]’) [enabled by default] /home/armbru/work/qemu/target-i386/translate.c:2966:5: warning: initialization from incompatible pointer type [enabled by default] /home/armbru/work/qemu/target-i386/translate.c:2966:5: warning: (near initialization for ‘sse_op_table3b[7]’) [enabled by default] /home/armbru/work/qemu/target-i386/translate.c: In function ‘gen_sse’: /home/armbru/work/qemu/target-i386/translate.c:3571:27: warning: assignment from incompatible pointer type [enabled by default] /home/armbru/work/qemu/target-i386/translate.c:3633:28: warning: assignment from incompatible pointer type [enabled by default] Reverting commit c4baa050 makes it compile.
