On Mon, 08 Feb 2010 12:41:04 +0100, Holger Kiehl <Holger.Kiehl@xxxxxx> wrote:
In my application I use a lot of crc32 checksum calculation in a little C function. I now have access to a system with an i7 which does have crc32 as an instruction. How can I make use of this instruction in my program? Most likely one can do this directly via assembler code, but is there support for this via libc?
This is doubtful however you might try using OpenSSL or similar library (IIRC it has CRC32 function implemented) and hope it has optimization for architecture you are running which may or may not be the case depending on how it has been compiled. This is probably the most portable way (as portable as the library) of achieving optimized CRC32 calculation meaning that you may get different optimizations on different architectures depending and you won't have to worry about it but at the same time you may end up with generic code. If you don't care about portability that much and simply won't to have fast function on your machine I'd say your best bet is using (inline) assembly (if you're using GCC google for "GCC inline assembly" or look through GCC's info pages). -- Best regards, _ _ .o. | Liege of Serenely Enlightened Majesty of o' \,=./ `o ..o | Computer Science, Michał "mina86" Nazarewicz (o o) ooo +---[mina86@xxxxxxxxxx]---[mina86@jabber.org]---ooO--(_)--Ooo-- -- To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html