Koki Ueha
878b7b80c1
libc: Prevent FCSEL instruction from being used to avoid raising an unintended exception
...
If you write an if expression in mem.doNotOptimizeAway like
doNotOptimizeAway(if (ix < 0x00100000) x / 0x1p120 else x + 0x1p120);,
FCSEL instruction is used on AArch64.
FCSEL instruction selects one of the two registers according to
the condition and copies its value.
In this example, `x / 0x1p120` and `x + 0x1p120` are expressions
that raise different floating-point exceptions.
However, since both are actually evaluated before the FCSEL
instruction, the exception not intended by the programmer may
also be raised.
To prevent FCSEL instruction from being used here, this commit
splits doNotOptimizeAway in two.
2025-06-15 04:01:43 -04:00
..
2025-06-05 06:12:00 +02:00
2022-06-17 16:38:59 -07:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2023-10-29 07:20:36 -04:00
2024-08-28 08:39:59 +01:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2023-11-19 09:55:07 +00:00
2023-11-19 09:55:07 +00:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-06-01 20:17:25 +02:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-06-05 06:12:00 +02:00
2025-05-29 15:35:35 +02:00
2025-05-29 15:35:35 +02:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2024-06-16 11:53:33 +02:00
2024-06-16 11:53:33 +02:00
2024-06-16 11:53:33 +02:00
2025-03-05 03:01:43 +00:00
2023-11-19 09:55:07 +00:00
2023-11-19 09:55:07 +00:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2025-06-04 13:25:21 +02:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2025-06-05 06:12:00 +02:00
2023-02-18 19:17:21 -07:00
2024-09-02 00:10:22 +03:00
2023-02-18 19:17:21 -07:00
2025-03-05 03:01:43 +00:00
2025-06-05 06:12:00 +02:00
2023-11-19 09:55:07 +00:00
2023-11-19 09:55:07 +00:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2023-09-27 11:24:28 -07:00
2025-03-05 03:01:43 +00:00
2025-02-25 19:31:00 +01:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-04-11 07:06:01 -04:00
2025-03-05 03:01:43 +00:00
2025-02-25 19:31:00 +01:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-02-25 19:31:00 +01:00
2025-03-05 03:01:43 +00:00
2023-06-24 16:56:39 -07:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2023-10-29 07:20:36 -04:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2023-07-24 10:23:51 -07:00
2024-09-02 00:10:22 +03:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2023-11-19 09:55:07 +00:00
2023-11-19 09:55:07 +00:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2025-04-11 07:06:01 -04:00
2025-03-05 03:01:43 +00:00
2025-04-04 06:08:10 +02:00
2025-03-05 03:01:43 +00:00
2025-04-11 07:06:01 -04:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2022-05-06 22:41:00 -07:00
2025-03-05 03:01:43 +00:00
2025-04-11 07:06:01 -04:00
2025-03-05 03:01:43 +00:00
2025-04-04 06:08:10 +02:00
2025-03-05 03:01:43 +00:00
2025-04-11 07:06:01 -04:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-04-11 07:06:01 -04:00
2025-03-05 03:01:43 +00:00
2025-04-04 06:08:10 +02:00
2025-03-05 03:01:43 +00:00
2025-04-11 07:06:01 -04:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-04-11 07:06:01 -04:00
2025-03-05 03:01:43 +00:00
2025-04-04 06:08:10 +02:00
2025-03-05 03:01:43 +00:00
2025-04-11 07:06:01 -04:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-04-11 07:06:01 -04:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-04-11 07:06:01 -04:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-04-11 07:06:01 -04:00
2025-02-09 00:42:55 -08:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-04-11 07:06:01 -04:00
2025-04-11 07:06:01 -04:00
2025-04-11 07:06:01 -04:00
2025-04-11 07:06:01 -04:00
2025-04-11 07:06:01 -04:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-04-04 06:08:10 +02:00
2025-03-05 03:01:43 +00:00
2025-04-04 06:08:10 +02:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-04-11 07:06:01 -04:00
2025-04-11 07:06:01 -04:00
2025-04-11 07:06:01 -04:00
2025-04-11 07:06:01 -04:00
2025-04-11 07:06:01 -04:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2022-05-06 22:41:00 -07:00
2023-10-29 07:20:36 -04:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2024-11-24 08:19:15 +01:00
2025-04-11 07:06:01 -04:00
2025-03-08 14:21:22 -05:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2023-09-19 09:37:52 -07:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2024-03-14 19:43:24 +02:00
2024-08-28 08:39:59 +01:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2023-06-24 16:56:39 -07:00
2023-06-24 16:56:39 -07:00
2023-06-24 16:56:39 -07:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-06-01 20:17:25 +02:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2023-06-24 16:56:39 -07:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2023-11-19 09:55:07 +00:00
2023-11-19 09:55:07 +00:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-05-19 00:22:03 +02:00
2025-03-05 03:01:43 +00:00
2024-02-08 15:21:35 +01:00
2024-02-08 15:21:35 +01:00
2024-02-08 15:21:35 +01:00
2025-03-05 03:01:43 +00:00
2024-02-08 15:21:35 +01:00
2024-02-08 15:21:35 +01:00
2024-02-08 15:21:35 +01:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2024-12-23 14:41:43 -05:00
2023-09-19 09:37:52 -07:00
2023-07-24 10:23:51 -07:00
2025-03-05 03:01:43 +00:00
2023-06-24 16:56:39 -07:00
2025-03-05 03:01:43 +00:00
2025-06-15 04:01:43 -04:00
2025-06-15 04:01:43 -04:00
2025-04-28 12:05:19 +02:00
2025-03-05 03:01:43 +00:00
2025-05-19 00:22:03 +02:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2023-11-19 09:55:07 +00:00
2023-11-19 09:55:07 +00:00
2023-11-19 09:55:07 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-06-01 20:17:25 +02:00
2025-06-01 20:17:25 +02:00
2025-03-05 03:01:43 +00:00
2025-06-15 04:01:43 -04:00
2025-02-09 00:42:55 -08:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2023-07-24 10:23:51 -07:00
2024-09-02 00:10:22 +03:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2023-11-19 09:55:07 +00:00
2023-11-19 09:55:07 +00:00
2023-11-19 09:55:07 +00:00
2023-11-19 09:55:07 +00:00
2024-10-19 19:44:53 +01:00
2025-04-11 07:06:01 -04:00
2024-10-19 19:44:53 +01:00
2022-11-16 13:08:41 +02:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00
2025-03-05 03:01:43 +00:00