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
This commit is contained in:
Denis Vlasenko
2008-12-08 22:56:18 +00:00
parent d1a84a2880
commit efb545b9bd
13 changed files with 97 additions and 77 deletions

View File

@ -503,7 +503,7 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
/* still selecting - this server looks bad */
}
/* it IS unaligned sometimes, don't "optimize" */
server_addr = get_unaligned_u32p((uint32_t*)temp);
move_from_unaligned32(server_addr, temp);
xid = packet.xid;
requested_ip = packet.yiaddr;
@ -525,7 +525,7 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
lease_seconds = 60 * 60;
} else {
/* it IS unaligned sometimes, don't "optimize" */
lease_seconds = get_unaligned_u32p((uint32_t*)temp);
move_from_unaligned32(lease_seconds, temp);
lease_seconds = ntohl(lease_seconds);
lease_seconds &= 0x0fffffff; /* paranoia: must not be prone to overflows */
if (lease_seconds < 10) /* and not too small */