Message ID | 20210119185542.628456-3-richard.henderson@linaro.org |
---|---|
State | New |
Headers | show |
Series | tcg: Optimize inline dup_const for MO_64 | expand |
On 19.01.21 19:55, Richard Henderson wrote: > Avoid the out-of-line function call for immediate MO_64. > In addition, diagnose all invalid constants at compile-time. > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > include/tcg/tcg.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h > index 504c5e9bb0..c5a9d65d5f 100644 > --- a/include/tcg/tcg.h > +++ b/include/tcg/tcg.h > @@ -1325,7 +1325,8 @@ uint64_t dup_const(unsigned vece, uint64_t c); > ? ( (VECE) == MO_8 ? 0x0101010101010101ull * (uint8_t)(C) \ > : (VECE) == MO_16 ? 0x0001000100010001ull * (uint16_t)(C) \ > : (VECE) == MO_32 ? 0x0000000100000001ull * (uint32_t)(C) \ > - : dup_const(VECE, C)) \ > + : (VECE) == MO_64 ? (uint64_t)(C) \ > + : (qemu_build_not_reached_always(), 0)) \ > : dup_const(VECE, C)) > > > Looks good to me! Reviewed-by: David Hildenbrand <david@redhat.com>
diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h index 504c5e9bb0..c5a9d65d5f 100644 --- a/include/tcg/tcg.h +++ b/include/tcg/tcg.h @@ -1325,7 +1325,8 @@ uint64_t dup_const(unsigned vece, uint64_t c); ? ( (VECE) == MO_8 ? 0x0101010101010101ull * (uint8_t)(C) \ : (VECE) == MO_16 ? 0x0001000100010001ull * (uint16_t)(C) \ : (VECE) == MO_32 ? 0x0000000100000001ull * (uint32_t)(C) \ - : dup_const(VECE, C)) \ + : (VECE) == MO_64 ? (uint64_t)(C) \ + : (qemu_build_not_reached_always(), 0)) \ : dup_const(VECE, C))
Avoid the out-of-line function call for immediate MO_64. In addition, diagnose all invalid constants at compile-time. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- include/tcg/tcg.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)