tcg: Optimize inline dup_const for MO_64
authorRichard Henderson <richard.henderson@linaro.org>
Sun, 16 Feb 2020 21:43:10 +0000 (13:43 -0800)
committerRichard Henderson <richard.henderson@linaro.org>
Fri, 22 Jan 2021 22:48:01 +0000 (12:48 -1000)
Avoid the out-of-line function call for immediate MO_64.
In addition, diagnose all invalid constants at compile-time.

Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
include/tcg/tcg.h

index 504c5e9bb0874998aa050e516e54bb4ae2d06f39..c5a9d65d5f3dcf39c3d508fdeee6c97283fb24ef 100644 (file)
@@ -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))