summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Moolenaar <marcel@FreeBSD.org>2003-08-06 00:17:15 +0000
committerMarcel Moolenaar <marcel@FreeBSD.org>2003-08-06 00:17:15 +0000
commit119fb38770e1ff1f070b5917d59e76f77e57c41d (patch)
treef98b3f77910c133ef9a52cd00265e961cd4f56a9
parent199d58cbfca2dac9f3313e517823e3a6ff7e808e (diff)
Notes
-rw-r--r--lib/libkse/arch/ia64/include/pthread_md.h8
-rw-r--r--lib/libpthread/arch/ia64/include/pthread_md.h8
2 files changed, 12 insertions, 4 deletions
diff --git a/lib/libkse/arch/ia64/include/pthread_md.h b/lib/libkse/arch/ia64/include/pthread_md.h
index f7076d0a65d2..7b5c2219428d 100644
--- a/lib/libkse/arch/ia64/include/pthread_md.h
+++ b/lib/libkse/arch/ia64/include/pthread_md.h
@@ -45,12 +45,16 @@ struct tcb;
struct tdv; /* We don't know what this is yet? */
/*
- * tp points to one of these.
+ * tp points to one of these. We define the static TLS as an array
+ * of long double to enforce 16-byte alignment of the TLS memory,
+ * struct ia64_tp, struct tcb and also struct kcb. Both static and
+ * dynamic allocation of any of these structures will result in a
+ * valid, well-aligned thread pointer.
*/
struct ia64_tp {
struct tdv *tp_tdv; /* dynamic TLS */
struct tcb *tp_self;
- char tp_tls[0]; /* static TLS */
+ long double tp_tls[0]; /* static TLS */
};
struct tcb {
diff --git a/lib/libpthread/arch/ia64/include/pthread_md.h b/lib/libpthread/arch/ia64/include/pthread_md.h
index f7076d0a65d2..7b5c2219428d 100644
--- a/lib/libpthread/arch/ia64/include/pthread_md.h
+++ b/lib/libpthread/arch/ia64/include/pthread_md.h
@@ -45,12 +45,16 @@ struct tcb;
struct tdv; /* We don't know what this is yet? */
/*
- * tp points to one of these.
+ * tp points to one of these. We define the static TLS as an array
+ * of long double to enforce 16-byte alignment of the TLS memory,
+ * struct ia64_tp, struct tcb and also struct kcb. Both static and
+ * dynamic allocation of any of these structures will result in a
+ * valid, well-aligned thread pointer.
*/
struct ia64_tp {
struct tdv *tp_tdv; /* dynamic TLS */
struct tcb *tp_self;
- char tp_tls[0]; /* static TLS */
+ long double tp_tls[0]; /* static TLS */
};
struct tcb {