Am 2013-08-15 14:01, schrieb Andrew Wu:
is 256-byte aligned, otherwise it will failback to use slower MOV loop. MOV loop is much slower then REP MOVSL on Vortex86EX, because reading instructions from ROM is slow.
Can't you cache the ROM area?
Other than that: Optimizing the common code is better than a special case. memmove won't change much, so that's a stable interface, but you never know what will happen (and few people will be able to test their changes on Vortex86).
Patrick
DMP/Vortex86EX can't cache ROM area on the top of 4G memory, so romstage area can't be cached. :(
I am thinking...should I just replace memmove function with REP MOVS version, or use __PRE_RAM__ macro to choose which memmove version to use? (Because in romstage REP MOVS runs much faster).
2013/8/16 Patrick Georgi patrick@georgi-clan.de:
Am 2013-08-15 14:01, schrieb Andrew Wu:
is 256-byte aligned, otherwise it will failback to use slower MOV loop. MOV loop is much slower then REP MOVSL on Vortex86EX, because reading instructions from ROM is slow.
Can't you cache the ROM area?
Other than that: Optimizing the common code is better than a special case. memmove won't change much, so that's a stable interface, but you never know what will happen (and few people will be able to test their changes on Vortex86).
Patrick
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot