Tim Northover
ea0eec69f1
IR+AArch64: add a "swiftasync" argument attribute.
...
This extends any frame record created in the function to include that
parameter, passed in X22.
The new record looks like [X22, FP, LR] in memory, and FP is stored with 0b0001
in bits 63:60 (CodeGen assumes they are 0b0000 in normal operation). The effect
of this is that tools walking the stack should expect to see one of three
values there:
* 0b0000 => a normal, non-extended record with just [FP, LR]
* 0b0001 => the extended record [X22, FP, LR]
* 0b1111 => kernel space, and a non-extended record.
All other values are currently reserved.
If compiling for arm64e this context pointer is address-discriminated with the
discriminator 0xc31a and the DB (process-specific) key.
There is also an "i8** @llvm.swift.async.context.addr()" intrinsic providing
front-ends access to this slot (and forcing its creation initialized to nullptr
if necessary).
2021-05-14 11:43:58 +01:00
..
2021-03-29 08:55:30 -04:00
2020-08-27 18:43:16 +01:00
2020-08-27 18:52:59 +01:00
2020-07-20 19:54:35 +05:30
2020-08-27 18:43:16 +01:00
2020-08-27 18:52:59 +01:00
2020-07-20 19:54:35 +05:30
2017-07-11 22:23:00 +00:00
2017-07-11 22:23:00 +00:00
2020-11-20 17:58:26 -05:00
2020-10-05 23:23:05 -05:00
2021-05-14 11:43:58 +01:00
2020-10-12 15:43:12 -07:00
2020-10-12 15:43:12 -07:00
2014-08-19 21:08:27 +00:00
2014-02-26 12:06:36 +00:00
2014-08-19 21:08:27 +00:00
2014-02-26 12:06:36 +00:00
2016-01-29 05:55:09 +00:00
2016-01-29 05:55:09 +00:00
2020-07-23 09:07:15 -07:00
2021-03-29 08:55:30 -04:00
2021-03-29 08:55:30 -04:00
2021-03-29 08:55:30 -04:00
2021-03-29 08:55:30 -04:00
2021-03-29 08:55:30 -04:00
2021-03-29 08:55:30 -04:00
2021-03-29 08:55:30 -04:00
2021-05-14 11:43:58 +01:00
2020-05-15 11:33:17 +05:30
2020-04-18 12:49:31 -07:00
2020-04-18 12:49:31 -07:00
2020-11-20 17:58:26 -05:00
2017-08-23 20:31:27 +00:00
2017-08-30 18:06:51 +00:00
2017-02-08 17:44:43 +00:00
2017-08-30 18:06:51 +00:00
2017-02-07 17:35:41 +00:00
2019-12-24 15:57:33 -08:00
2018-09-20 08:53:06 +00:00
2020-05-13 12:52:30 +05:30
2020-05-13 12:52:30 +05:30
2020-12-18 13:10:57 -05:00
2020-05-13 12:52:30 +05:30
2020-05-13 12:52:30 +05:30
2020-09-25 10:08:43 -07:00
2020-09-25 10:08:43 -07:00
2019-03-19 13:49:03 +00:00
2019-03-19 13:49:03 +00:00
2020-03-02 16:45:48 +05:30
2020-03-02 16:45:48 +05:30
2021-02-22 10:37:57 -08:00
2020-10-17 08:42:28 +05:30
2020-08-26 15:51:30 -07:00
2014-08-19 21:08:27 +00:00
2020-05-28 13:46:41 +05:30
2020-05-28 13:46:41 +05:30
2020-05-28 13:46:41 +05:30
2020-02-13 10:16:06 -08:00
2018-11-13 18:15:47 +00:00
2020-10-29 01:34:15 +05:30
2020-10-29 01:34:15 +05:30
2020-10-29 01:34:15 +05:30
2017-05-11 12:28:08 +00:00
2020-11-20 17:58:26 -05:00
2014-09-23 08:48:01 +00:00
2021-03-29 08:55:30 -04:00
2021-03-29 08:55:30 -04:00
2021-03-19 14:34:25 +01:00
2020-02-13 10:16:06 -08:00
2019-08-07 17:20:55 +00:00
2019-07-11 01:14:30 +00:00
2020-02-13 10:16:06 -08:00
2014-12-15 19:07:53 +00:00
2020-05-15 12:26:58 -07:00
2016-12-28 22:30:28 +00:00
2016-03-29 05:25:17 +00:00
2018-02-23 23:13:18 +00:00
2018-02-23 23:13:18 +00:00
2016-03-27 23:17:54 +00:00
2019-04-17 17:38:09 +00:00
2019-11-14 10:40:41 -08:00
2021-03-04 11:22:30 -08:00
2015-06-16 20:03:39 +00:00
2020-10-10 17:51:12 +05:30
2020-10-10 17:51:12 +05:30
2015-08-31 18:00:30 +00:00
2020-07-14 12:16:57 -07:00
2020-05-28 10:33:05 -07:00
2019-07-24 22:23:05 +00:00
2021-01-27 10:43:51 -08:00
2017-09-01 16:24:02 +00:00
2021-02-12 22:58:26 -08:00
2016-09-20 23:07:17 +00:00
2020-05-28 10:33:05 -07:00
2020-05-28 10:33:05 -07:00
2021-01-27 10:43:51 -08:00
2021-01-27 10:43:51 -08:00
2020-05-28 10:33:05 -07:00
2020-05-28 10:33:05 -07:00
2017-08-04 16:00:58 +00:00
2020-05-28 10:33:05 -07:00
2020-08-17 03:30:14 -07:00
2021-01-27 10:43:51 -08:00
2020-05-28 10:33:05 -07:00
2016-08-12 13:53:02 +00:00
2019-07-03 17:31:43 +00:00
2017-11-04 17:04:39 +00:00
2018-01-11 22:15:05 +00:00
2021-02-12 22:58:26 -08:00
2021-01-27 10:43:51 -08:00
2021-01-27 10:43:51 -08:00
2019-12-30 09:46:19 -08:00
2020-03-11 13:26:06 -07:00
2020-03-11 13:26:06 -07:00
2020-10-20 11:57:19 +02:00
2020-07-23 13:07:28 -07:00
2021-05-05 15:51:46 -05:00
2020-10-19 23:09:41 +02:00
2021-02-22 15:42:16 -08:00
2021-02-22 15:42:16 -08:00
2018-05-09 02:40:45 +00:00
2016-04-15 15:57:41 +00:00
2015-11-05 22:03:56 +00:00
2021-02-22 15:42:16 -08:00
2021-02-22 15:42:16 -08:00
2020-10-07 10:36:44 -07:00
2020-10-07 10:36:44 -07:00
2021-05-11 08:23:55 -07:00
2021-05-11 08:23:55 -07:00
2014-08-19 21:08:27 +00:00
2014-08-19 21:08:27 +00:00
2014-02-26 12:06:36 +00:00
2020-01-22 12:29:25 -08:00
2020-06-30 13:23:07 -07:00
2020-12-14 16:34:37 -05:00