diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-12-08 22:56:18 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-12-08 22:56:18 +0000 |
commit | efb545b9bdd3934dcdbf9bc0890a42081b330049 (patch) | |
tree | 4dc9212e49a5dae9890bd324bcc9bf4941e2321d /archival | |
parent | d1a84a2880073f6cc5e2f9f4e5f236cd110f01a0 (diff) | |
download | busybox-w32-efb545b9bdd3934dcdbf9bc0890a42081b330049.tar.gz busybox-w32-efb545b9bdd3934dcdbf9bc0890a42081b330049.tar.bz2 busybox-w32-efb545b9bdd3934dcdbf9bc0890a42081b330049.zip |
optimize 16- and 32-bit moves
function old new delta
udhcpd_main 1239 1257 +18
udhcp_add_simple_option 93 92 -1
buffer_read_le_u32 19 18 -1
unpack_gz_stream_with_info 526 520 -6
dnsd_main 1470 1463 -7
udhcp_run_script 1208 1186 -22
send_ACK 255 229 -26
arping_main 1661 1623 -38
send_offer 470 428 -42
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/8 up/down: 18/-143) Total: -125 bytes
Diffstat (limited to 'archival')
-rw-r--r-- | archival/libunarchive/decompress_unzip.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/archival/libunarchive/decompress_unzip.c b/archival/libunarchive/decompress_unzip.c index e83cd4f45..86969251e 100644 --- a/archival/libunarchive/decompress_unzip.c +++ b/archival/libunarchive/decompress_unzip.c | |||
@@ -1083,8 +1083,7 @@ static uint16_t buffer_read_le_u16(STATE_PARAM_ONLY) | |||
1083 | { | 1083 | { |
1084 | uint16_t res; | 1084 | uint16_t res; |
1085 | #if BB_LITTLE_ENDIAN | 1085 | #if BB_LITTLE_ENDIAN |
1086 | /* gcc 4.2.1 is very clever */ | 1086 | move_from_unaligned16(res, &bytebuffer[bytebuffer_offset]); |
1087 | memcpy(&res, &bytebuffer[bytebuffer_offset], 2); | ||
1088 | #else | 1087 | #else |
1089 | res = bytebuffer[bytebuffer_offset]; | 1088 | res = bytebuffer[bytebuffer_offset]; |
1090 | res |= bytebuffer[bytebuffer_offset + 1] << 8; | 1089 | res |= bytebuffer[bytebuffer_offset + 1] << 8; |
@@ -1097,7 +1096,7 @@ static uint32_t buffer_read_le_u32(STATE_PARAM_ONLY) | |||
1097 | { | 1096 | { |
1098 | uint32_t res; | 1097 | uint32_t res; |
1099 | #if BB_LITTLE_ENDIAN | 1098 | #if BB_LITTLE_ENDIAN |
1100 | memcpy(&res, &bytebuffer[bytebuffer_offset], 4); | 1099 | move_from_unaligned32(res, &bytebuffer[bytebuffer_offset]); |
1101 | #else | 1100 | #else |
1102 | res = bytebuffer[bytebuffer_offset]; | 1101 | res = bytebuffer[bytebuffer_offset]; |
1103 | res |= bytebuffer[bytebuffer_offset + 1] << 8; | 1102 | res |= bytebuffer[bytebuffer_offset + 1] << 8; |