X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=plugins%2Fgpu_neon%2Fpsx_gpu%2Fvector_ops.h;h=6f2bcbf7b668a2d61b629b7fd4a89bae2655f3fb;hb=aafce833d9d30a8709b6e07891b8ec2145242fd8;hp=b58b1908c1e15f9b8c061a2b907f422ae4428273;hpb=05e2e0c6e20a335c9ce86d22a2ae1ba0f5bd2865;p=pcsx_rearmed.git diff --git a/plugins/gpu_neon/psx_gpu/vector_ops.h b/plugins/gpu_neon/psx_gpu/vector_ops.h index b58b1908..6f2bcbf7 100644 --- a/plugins/gpu_neon/psx_gpu/vector_ops.h +++ b/plugins/gpu_neon/psx_gpu/vector_ops.h @@ -15,33 +15,7 @@ #ifndef VECTOR_OPS #define VECTOR_OPS -#define build_vector_type_pair(sign, size, count, count_x2) \ -typedef struct \ -{ \ - sign##size e[count]; \ -} vec_##count##x##size##sign; \ - \ -typedef struct \ -{ \ - union \ - { \ - sign##size e[count_x2]; \ - struct \ - { \ - vec_##count##x##size##sign low; \ - vec_##count##x##size##sign high; \ - }; \ - }; \ -} vec_##count_x2##x##size##sign \ - -#define build_vector_types(sign) \ - build_vector_type_pair(sign, 8, 8, 16); \ - build_vector_type_pair(sign, 16, 4, 8); \ - build_vector_type_pair(sign, 32, 2, 4); \ - build_vector_type_pair(sign, 64, 1, 2) \ - -build_vector_types(u); -build_vector_types(s); +#include "vector_types.h" #define foreach_element(iterations, operation) \ @@ -129,7 +103,7 @@ build_vector_types(s); foreach_element(2, (dest).e[_i] = (u32)(source).e[_i] >> (shift)) \ #define shr_4x16b(dest, source, shift) \ - foreach_element(4, (dest).e[_i] = (source).e[_i] >> (shift)) \ + foreach_element(4, (dest).e[_i] = (u16)(source).e[_i] >> (shift)) \ #define shl_4x16b(dest, source, shift) \ foreach_element(4, (dest).e[_i] = (u32)(source).e[_i] << (shift)) \ @@ -396,7 +370,7 @@ build_vector_types(s); #define zip_4x32b(dest, source_a, source_b) \ foreach_element(4, (dest).e[_i] = \ - (u8)(source_a).e[_i] | ((u8)(source_b).e[_i] << 16)) \ + (u16)(source_a).e[_i] | ((u16)(source_b).e[_i] << 16)) \ #define zip_2x64b(dest, source_a, source_b) \ foreach_element(2, (dest).e[_i] = \