mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2024-12-23 00:35:34 +00:00
4ccadaf6cf
In f47db80cc07, we handled odd-sized tail clearing for the case of hosts that have vector operations, but did not handle the case of hosts that do not have vector ops. This was ok until e2e7168a214b, which changed the encoding of simd_desc such that the odd sizes are impossible. Add memset as a tcg helper, and use that for all out-of-line byte stores to vectors. This includes, but is not limited to, the tail clearing operation in question. Backports 6d3ef04893bdea3e7aa08be3cce5141902836a31
54 lines
1.8 KiB
C
54 lines
1.8 KiB
C
/* Helper file for declaring TCG helper functions.
|
|
This one expands prototypes for the helper functions. */
|
|
|
|
#ifndef HELPER_PROTO_H
|
|
#define HELPER_PROTO_H
|
|
|
|
#include "exec/helper-head.h"
|
|
|
|
#define DEF_HELPER_FLAGS_0(name, flags, ret) \
|
|
dh_ctype(ret) HELPER(name) (void);
|
|
|
|
#define DEF_HELPER_FLAGS_1(name, flags, ret, t1) \
|
|
dh_ctype(ret) HELPER(name) (dh_ctype(t1));
|
|
|
|
#define DEF_HELPER_FLAGS_2(name, flags, ret, t1, t2) \
|
|
dh_ctype(ret) HELPER(name) (dh_ctype(t1), dh_ctype(t2));
|
|
|
|
#define DEF_HELPER_FLAGS_3(name, flags, ret, t1, t2, t3) \
|
|
dh_ctype(ret) HELPER(name) (dh_ctype(t1), dh_ctype(t2), dh_ctype(t3));
|
|
|
|
#define DEF_HELPER_FLAGS_4(name, flags, ret, t1, t2, t3, t4) \
|
|
dh_ctype(ret) HELPER(name) (dh_ctype(t1), dh_ctype(t2), dh_ctype(t3), \
|
|
dh_ctype(t4));
|
|
|
|
#define DEF_HELPER_FLAGS_5(name, flags, ret, t1, t2, t3, t4, t5) \
|
|
dh_ctype(ret) HELPER(name) (dh_ctype(t1), dh_ctype(t2), dh_ctype(t3), \
|
|
dh_ctype(t4), dh_ctype(t5));
|
|
|
|
#define DEF_HELPER_FLAGS_6(name, flags, ret, t1, t2, t3, t4, t5, t6) \
|
|
dh_ctype(ret) HELPER(name) (dh_ctype(t1), dh_ctype(t2), dh_ctype(t3), \
|
|
dh_ctype(t4), dh_ctype(t5), dh_ctype(t6));
|
|
|
|
#define DEF_HELPER_FLAGS_7(name, flags, ret, t1, t2, t3, t4, t5, t6, t7) \
|
|
dh_ctype(ret) HELPER(name) (dh_ctype(t1), dh_ctype(t2), dh_ctype(t3), \
|
|
dh_ctype(t4), dh_ctype(t5), dh_ctype(t6), \
|
|
dh_ctype(t7));
|
|
|
|
#define IN_HELPER_PROTO
|
|
|
|
#include "helper.h"
|
|
#include "tcg-runtime.h"
|
|
|
|
#undef IN_HELPER_PROTO
|
|
#undef DEF_HELPER_FLAGS_0
|
|
#undef DEF_HELPER_FLAGS_1
|
|
#undef DEF_HELPER_FLAGS_2
|
|
#undef DEF_HELPER_FLAGS_3
|
|
#undef DEF_HELPER_FLAGS_4
|
|
#undef DEF_HELPER_FLAGS_5
|
|
#undef DEF_HELPER_FLAGS_6
|
|
#undef DEF_HELPER_FLAGS_7
|
|
|
|
#endif /* HELPER_PROTO_H */
|