summaryrefslogtreecommitdiffstats
path: root/src/include/ChangeLog
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2005-06-09 23:30:33 +0000
committerKen Raeburn <raeburn@mit.edu>2005-06-09 23:30:33 +0000
commitb7a6c2457a56b07e6b8231b496237deae7b31b19 (patch)
treed8911a4e52184091080144afa1ae8da244dbbcd6 /src/include/ChangeLog
parentdb604cfab8e6762248bece0edba7d87d8a48338d (diff)
downloadkrb5-b7a6c2457a56b07e6b8231b496237deae7b31b19.tar.gz
krb5-b7a6c2457a56b07e6b8231b496237deae7b31b19.tar.xz
krb5-b7a6c2457a56b07e6b8231b496237deae7b31b19.zip
Use GCC's packed-structure support to try to optimize unaligned loads and
stores of values. (E.g., on x86, gcc will emit a word load or store regardless of alignment; on sparc or alpha, it will do aligned word accesses. The old C code does byte operations and arithmetic, always.) Tested in crypto code on x86, sparc, and amd64. * k5-platform.h (load_*): Change argument type to point to const. (K5_BE, K5_LE): New macros, defined based on architecture macros for certain big-endian and little-endian platforms, respectively. (PUT, GET) [__GNUC__]: New macros. Use GCC's packed-structure support to do unaligned loads and stores. (PUTSWAPPED, GETSWAPPED) [__GNUC__]: Similar, but invoke a SWAP<size> macro (not defined yet) to swap the bytes of the value. (store_*, load_*): Use these macros when using GCC, depending on endianness and availability of the SWAP<size> macros. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@17232 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/include/ChangeLog')
-rw-r--r--src/include/ChangeLog13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/include/ChangeLog b/src/include/ChangeLog
index 2551c65361..81b690cd42 100644
--- a/src/include/ChangeLog
+++ b/src/include/ChangeLog
@@ -1,3 +1,16 @@
+2005-06-09 Ken Raeburn <raeburn@mit.edu>
+
+ * k5-platform.h (load_*): Change argument type to point to const.
+ (K5_BE, K5_LE): New macros, defined based on architecture macros
+ for certain big-endian and little-endian platforms, respectively.
+ (PUT, GET) [__GNUC__]: New macros. Use GCC's packed-structure
+ support to do unaligned loads and stores.
+ (PUTSWAPPED, GETSWAPPED) [__GNUC__]: Similar, but invoke a
+ SWAP<size> macro (not defined yet) to swap the bytes of the
+ value.
+ (store_*, load_*): Use these macros when using GCC, depending on
+ endianness and availability of the SWAP<size> macros.
+
2005-06-07 Ken Raeburn <raeburn@mit.edu>
* k5-platform.h (MAYBE_DEFINE_CALLINIT_FUNCTION)