Daniel Bertalan
2b69af2dfe
AK+LibJS: Handle NaN-boxing pointers on AArch64
...
JS::Value stores 48 bit pointers to separately allocated objects in its
payload. On x86-64, canonical addresses have their top 16 bits set to
the same value as bit 47, effectively meaning that the value has to be
sign-extended to get the pointer. AArch64, however, expects the topmost
bits to be all zeros.
This commit gates sign extension behind `#if ARCH(X86_64)`, and adds an
`#error` for unsupported architectures, so that we do not forget to
think about pointer handling when porting to a new architecture.
Fixes #15290
Fixes SerenityOS/ladybird#56
2022-09-21 11:55:57 +02:00
..
2022-09-18 09:45:40 -04:00
2022-09-18 13:27:24 -04:00
2022-09-02 22:47:28 +01:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-02 02:07:37 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-16 05:39:28 +00:00
2022-08-29 03:24:54 +02:00
2022-08-26 19:18:26 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-23 13:58:30 +01:00
2022-08-29 03:24:54 +02:00
2022-09-18 13:27:24 -04:00
2022-07-20 21:25:59 +01:00
2022-09-08 00:13:39 +02:00
2022-08-23 13:58:30 +01:00
2022-08-28 16:36:56 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-17 18:53:14 +02:00
2022-08-29 03:24:54 +02:00
2022-09-05 14:37:16 -04:00
2022-08-29 03:24:54 +02:00
2022-09-02 02:07:37 +01:00
2022-09-18 13:27:24 -04:00
2022-09-06 00:27:09 +02:00
2022-08-29 03:24:54 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-07-26 10:46:08 -07:00
2022-09-06 00:27:09 +02:00
2022-09-03 00:36:26 +02:00
2022-09-03 00:36:26 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-23 13:58:30 +01:00
2022-08-29 03:24:54 +02:00
2022-08-23 13:58:30 +01:00
2022-09-15 09:45:13 +02:00
2022-09-15 09:45:13 +02:00
2022-09-15 09:45:13 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-28 16:36:56 +01:00
2022-08-29 03:24:54 +02:00
2022-08-28 19:34:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-28 19:34:10 +01:00
2022-09-17 04:00:54 +00:00
2022-08-27 11:29:10 +01:00
2022-08-23 13:58:30 +01:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-23 13:58:30 +01:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-02 02:07:37 +01:00
2022-09-02 02:07:37 +01:00
2022-09-02 02:07:37 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-28 16:36:56 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-23 13:58:30 +01:00
2022-08-29 03:24:54 +02:00
2022-08-23 13:58:30 +01:00
2022-08-29 03:24:54 +02:00
2022-08-23 13:58:30 +01:00
2022-08-29 03:24:54 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-23 13:58:30 +01:00
2022-08-23 13:58:30 +01:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-23 13:58:30 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-23 13:58:30 +01:00
2022-08-23 13:58:30 +01:00
2022-08-23 13:58:30 +01:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-09-02 22:44:44 +01:00
2022-08-29 03:24:54 +02:00
2022-09-06 00:27:09 +02:00
2022-09-06 00:27:09 +02:00
2022-08-27 11:29:10 +01:00
2022-08-23 13:58:30 +01:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-28 16:36:56 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-23 13:58:30 +01:00
2022-08-29 03:24:54 +02:00
2022-09-05 14:37:16 -04:00
2022-09-18 13:27:24 -04:00
2022-08-23 13:58:30 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-30 10:30:54 +01:00
2022-09-21 11:55:57 +02:00
2022-09-06 00:27:09 +02:00
2022-09-08 00:13:39 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-09-15 09:45:13 +02:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00
2022-08-27 11:29:10 +01:00
2022-08-29 03:24:54 +02:00