[webkit-dev] Proposal about integer types used in WebKit

Geoffrey Garen ggaren at apple.com
Fri Jul 24 15:18:59 PDT 2009


> In JavaScriptCore, some structures have integer members that must be
> 32bits in size, regardless of processor type. In those places, int32_t
> and uint32_t are useful.
>
> Less clear to me is whether clients of such structures should also use
> int32_t / uint32_t. For example:
>
> struct {
>        int32_t i;
> } s;
>
> int32_t i32 = s.i; // option 1
> int i = s.i; // option 2
>
> Technically, option 2, which converts from int32_t to int, requires a
> "32bit move with sign extension to 64bit" instead of just a "32bit
> move", but Intel's documentation says that 32bit to 64bit sign
> extension is the very fastest instruction on the processor, so maybe
> it doesn't matter.

As Darin pointed out privately, this observation was wrong. Since  
"int" still means "32bit" on LP64 platforms, you could just use int.

So, I guess the question is, if you have a quantity that must be 32  
bits, is it useful or harmful to specify by using int32_t instead of  
int?

Geoff


More information about the webkit-dev mailing list