Amy Kwan
2a50921553
[AIX][TLS] Optimize the small local-exec access sequence for non-zero offsets ( #71485 )
...
This patch utilizes the -maix-small-local-exec-tls option to produce a
faster,
non-TOC-based access sequence for the local-exec TLS model.
Specifically, for
when the offsets from the TLS variable are non-zero.
In particular, this patch produces either a single:
- addi/la with a displacement off of R13 plus a non-zero offset for when
an address is calculated, or
- load or store off of R13 plus a non-zero offset for when an address is
calculated and used for further
access where R13 is the thread pointer, respectively.
In order to produce a single addi or load/store off of the thread
pointer with a non-zero offset,
this patch also adds the necessary support in the assembly printer when
printing these instructions.
Specifically:
- The non-zero offset is added to the TLS variable address when the
address of the
TLS variable + it's offset is less than 32KB.
- Otherwise, when the address of the TLS variable + its offset is
greater than 32KB, the
non-zero offset (and a multiple of 64KB) is subtracted from the TLS
address.
This handling in the assembly printer is necessary to ensure that the
TLS address + the non-zero offset
is between [-32768, 32768), so that the total displacement can fit
within the addi/load/store instructions.
This patch is meant to be a follow-up to
3f46e5453d (where the
optimization occurs for when the offset is zero).
2024-02-01 09:29:21 -05:00
..
2023-09-08 15:43:21 +08:00
2023-08-29 21:42:22 -04:00
2023-12-15 13:32:39 -08:00
2023-09-08 15:43:21 +08:00
2023-12-15 13:32:39 -08:00
2023-11-20 09:51:12 +00:00
2023-09-08 15:43:21 +08:00
2023-07-15 16:13:48 -04:00
2023-07-15 16:13:48 -04:00
2023-12-04 17:35:47 -06:00
2023-07-25 22:47:11 -04:00
2023-12-01 08:22:18 +00:00
2023-12-01 08:22:18 +00:00
2023-07-20 09:45:37 -04:00
2023-08-31 11:43:47 -04:00
2023-11-20 09:51:12 +00:00
2023-09-08 15:43:21 +08:00
2023-07-15 16:13:48 -04:00
2023-12-08 15:03:11 -05:00
2023-12-08 15:03:11 -05:00
2023-12-08 15:03:11 -05:00
2023-12-04 17:35:47 -06:00
2023-12-04 17:35:47 -06:00
2023-07-24 00:35:24 -04:00
2023-07-24 00:35:24 -04:00
2023-07-24 00:35:24 -04:00
2023-12-04 17:35:47 -06:00
2023-07-24 00:35:24 -04:00
2023-07-24 00:35:24 -04:00
2023-09-13 14:55:07 +08:00
2023-10-24 20:27:39 -07:00
2023-12-04 17:35:47 -06:00
2023-08-28 00:21:09 -04:00
2023-12-21 08:17:32 -06:00
2024-02-01 09:29:21 -05:00
2024-02-01 09:29:21 -05:00
2024-02-01 09:29:21 -05:00
2024-02-01 09:29:21 -05:00
2024-02-01 09:29:21 -05:00
2024-02-01 09:29:21 -05:00
2023-09-13 14:55:07 +08:00
2024-02-01 09:29:21 -05:00
2023-09-07 17:46:41 +00:00
2023-07-15 16:13:48 -04:00
2023-11-26 11:59:09 +08:00
2023-12-07 12:47:25 +08:00
2023-12-07 12:47:25 +08:00
2023-08-30 16:22:16 +08:00
2023-08-30 16:22:16 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-07 20:05:29 -05:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-07-24 00:35:24 -04:00
2023-07-24 00:35:24 -04:00
2023-07-24 00:35:24 -04:00
2023-06-27 11:33:38 -05:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-07-05 01:58:18 -04:00
2023-12-04 17:35:47 -06:00
2023-07-15 16:13:48 -04:00
2023-07-29 03:24:21 +00:00
2023-12-04 17:35:47 -06:00
2023-12-21 08:17:32 -06:00
2023-09-07 11:14:56 -04:00
2023-07-15 16:13:48 -04:00
2023-12-21 08:17:32 -06:00
2023-09-07 11:14:56 -04:00
2023-12-04 17:35:47 -06:00
2023-11-24 12:21:28 -05:00
2023-10-09 12:31:32 +01:00
2023-11-14 10:52:51 -05:00
2023-10-12 09:32:17 +02:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-10-13 10:59:27 +08:00
2023-12-20 10:01:02 +08:00
2023-09-08 15:43:21 +08:00
2023-12-20 10:01:02 +08:00
2024-01-31 16:34:21 -05:00
2024-01-31 16:34:21 -05:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2024-02-01 22:10:52 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-11-30 05:06:29 +00:00
2023-09-13 15:00:49 -05:00
2023-09-13 14:55:07 +08:00
2023-07-07 22:46:22 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-07-12 14:35:55 +02:00
2023-09-08 15:43:21 +08:00
2024-01-26 12:39:25 -05:00
2023-09-07 20:05:29 -05:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-22 15:26:39 -04:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-07 13:03:17 -04:00
2023-09-22 15:26:39 -04:00
2023-09-22 15:26:39 -04:00
2023-09-22 15:26:39 -04:00
2023-09-22 15:26:39 -04:00
2024-01-26 11:24:50 -05:00
2023-10-18 02:21:22 +00:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-12-07 12:47:25 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-11-20 09:17:04 +08:00
2023-09-08 15:43:21 +08:00
2023-09-01 19:45:03 -04:00
2023-06-21 10:30:43 -04:00
2023-09-13 14:55:07 +08:00
2024-01-03 03:03:48 +00:00
2023-09-13 14:55:07 +08:00
2023-11-03 10:46:07 +01:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-12-29 11:27:06 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2024-01-15 17:25:49 +01:00
2023-09-22 15:26:39 -04:00
2023-09-08 15:43:21 +08:00
2023-06-21 10:24:40 +00:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-22 15:26:39 -04:00
2023-09-26 06:24:47 -04:00
2023-09-13 14:55:07 +08:00
2023-11-01 11:51:15 +09:00
2023-09-08 15:43:21 +08:00
2023-06-21 10:24:40 +00:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-08-14 09:04:27 +02:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-10-09 12:31:32 +01:00
2023-06-21 10:24:40 +00:00
2023-09-08 15:43:21 +08:00
2024-01-10 09:23:30 +08:00
2023-11-01 11:51:15 +09:00
2023-07-12 14:35:55 +02:00
2023-08-29 21:42:22 -04:00
2023-10-24 20:27:39 -07:00
2023-10-06 10:24:54 -04:00
2023-06-06 17:07:18 -04:00
2023-06-21 14:27:39 +08:00
2023-11-03 07:08:33 +08:00
2023-11-03 07:08:33 +08:00
2023-10-09 12:31:32 +01:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-06-28 14:50:16 -04:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2024-01-12 07:45:28 -08:00
2023-10-09 12:31:32 +01:00
2023-06-21 10:30:43 -04:00
2023-06-21 10:30:43 -04:00
2023-09-13 14:55:07 +08:00
2024-02-01 22:10:52 +08:00
2023-08-29 21:42:22 -04:00
2023-12-13 16:18:24 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2024-01-26 09:22:37 -05:00
2024-01-31 10:27:07 -05:00
2023-09-07 11:14:56 -04:00
2024-01-31 10:27:07 -05:00
2023-09-22 15:26:39 -04:00
2023-09-08 15:43:21 +08:00
2023-11-27 19:39:40 +01:00
2024-01-26 09:56:06 -06:00
2023-11-27 19:39:40 +01:00
2023-07-14 13:38:40 -05:00
2023-10-09 12:31:32 +01:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2024-02-01 22:10:52 +08:00
2023-09-08 15:43:21 +08:00
2023-09-22 15:26:39 -04:00
2023-09-22 15:26:39 -04:00
2023-07-13 15:21:49 -04:00
2023-09-08 15:43:21 +08:00
2023-09-26 06:24:47 -04:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-10-24 20:27:39 -07:00
2023-10-24 20:27:39 -07:00
2023-09-08 15:43:21 +08:00
2023-08-29 21:42:22 -04:00
2023-12-07 13:40:00 -05:00
2023-12-07 13:40:00 -05:00
2023-12-07 13:40:00 -05:00
2023-09-13 14:55:07 +08:00
2023-09-22 15:26:39 -04:00
2023-09-22 15:26:39 -04:00
2023-09-28 01:33:41 -04:00
2023-09-08 15:43:21 +08:00
2024-01-09 10:48:23 -08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-18 08:58:50 -07:00
2023-09-07 20:05:29 -05:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-09-15 19:52:50 +00:00
2023-09-15 19:52:50 +00:00
2023-11-09 09:08:41 -08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-08-29 21:42:22 -04:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 16:33:45 +08:00
2024-01-15 15:27:36 +08:00
2023-08-29 21:42:22 -04:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-06-25 21:05:06 +00:00
2023-11-03 10:16:15 +01:00
2023-09-08 15:43:21 +08:00
2023-09-13 12:33:39 +01:00
2023-09-08 15:43:21 +08:00
2024-01-08 09:37:40 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-06-21 10:24:40 +00:00
2023-09-13 14:55:07 +08:00
2023-10-25 16:52:15 +01:00
2024-01-15 10:12:33 +01:00
2023-09-13 14:55:07 +08:00
2023-09-05 11:22:09 +08:00
2023-09-13 14:55:07 +08:00
2023-10-24 20:27:39 -07:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-07-23 13:24:35 +05:30
2023-12-05 14:09:36 +01:00
2023-06-21 10:30:43 -04:00
2023-09-22 15:26:39 -04:00
2023-09-08 15:43:21 +08:00
2023-09-28 15:51:14 +08:00
2023-09-22 15:26:39 -04:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-11-15 12:20:06 +08:00
2023-09-08 15:43:21 +08:00
2024-01-26 09:56:06 -06:00
2023-09-08 16:33:45 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-11-20 07:28:21 +00:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-28 15:51:14 +08:00
2023-09-08 15:43:21 +08:00
2023-09-22 15:26:39 -04:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-08-29 04:35:06 +00:00
2023-09-13 14:55:07 +08:00
2023-06-26 13:50:36 -07:00
2023-08-29 04:35:06 +00:00
2023-10-09 12:31:32 +01:00
2024-01-22 13:51:03 -08:00
2023-09-13 14:55:07 +08:00
2023-12-11 21:10:34 -06:00
2023-06-21 10:24:40 +00:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-09-15 19:52:50 +00:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-15 19:52:50 +00:00
2023-10-24 20:27:39 -07:00
2023-12-04 17:35:47 -06:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-12-07 12:47:25 +08:00
2023-09-15 19:52:50 +00:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2024-01-31 16:34:21 -05:00
2023-08-15 10:40:35 -04:00
2023-08-15 10:40:35 -04:00
2023-09-08 15:43:21 +08:00
2023-09-07 16:49:31 -04:00
2023-09-19 11:18:12 +01:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-08-29 21:42:22 -04:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 15:00:49 -05:00
2023-09-13 15:00:49 -05:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-06-20 15:31:22 +01:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-10-19 13:05:04 +01:00
2023-10-19 13:05:04 +01:00
2023-09-13 14:55:07 +08:00
2023-07-07 22:46:22 +08:00
2023-09-13 15:00:49 -05:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-06-20 22:40:56 -07:00
2023-06-18 13:32:40 -07:00
2023-06-18 13:32:40 -07:00