x86, boot: use appropriate rep string for move and clear
authorH. Peter Anvin <hpa@zytor.com>
Fri, 8 May 2009 23:45:15 +0000 (16:45 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Sat, 9 May 2009 00:34:52 +0000 (17:34 -0700)
commit36d3793c947f1ef7ba3d24eeeddc1be41adc5ab4
treebf5987e4caacb7aab5a78ca683a3179bd8eba717
parent97541912785369925723b6255438ad9fce2ddf04
x86, boot: use appropriate rep string for move and clear

In the pre-decompression code, use the appropriate largest possible
rep movs and rep stos to move code and clear bss, respectively.  For
reverse copy, do note that the initial values are supposed to be the
address of the first (highest) copy datum, not one byte beyond the end
of the buffer.

rep strings are not necessarily the fastest way to perform these
operations on all current processors, but are likely to be in the
future, and perhaps more importantly, we want to encourage the
architecturally right thing to do here.

This also fixes a couple of trivial inefficiencies on 64 bits.

[ Impact: trivial performance enhancement, increase code similarity ]

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/boot/compressed/head_32.S
arch/x86/boot/compressed/head_64.S