aboutsummaryrefslogtreecommitdiff
path: root/archival
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-12-08 22:56:18 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-12-08 22:56:18 +0000
commitefb545b9bdd3934dcdbf9bc0890a42081b330049 (patch)
tree4dc9212e49a5dae9890bd324bcc9bf4941e2321d /archival
parentd1a84a2880073f6cc5e2f9f4e5f236cd110f01a0 (diff)
downloadbusybox-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.c5
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;