English fixes to docs/smallint.txt
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
8f8ee534a7
commit
738e4de013
@ -8,14 +8,15 @@
|
|||||||
|
|
||||||
I think that this optimization is wrong.
|
I think that this optimization is wrong.
|
||||||
index_in_str_array returns int. At best, compiler will use it as-is.
|
index_in_str_array returns int. At best, compiler will use it as-is.
|
||||||
At worst, compiler will try to make sure that it is properly casted
|
At worst, compiler will try to make sure that it is properly cast
|
||||||
into a byte, which probably results in "n = n & 0xff" on many architectures.
|
into a byte, which probably results in "n = n & 0xff" on many architectures.
|
||||||
|
|
||||||
You save nothing on space here because i is not stored on-stack,
|
You save nothing on space here because i is not stored on-stack,
|
||||||
gcc will keep it in register. And even it is *is* stored,
|
gcc will keep it in register. And even if it *is* stored,
|
||||||
it is *stack* storage, which is cheap (unlike data/bss).
|
it is *stack* storage, which is cheap (unlike data/bss).
|
||||||
|
|
||||||
small[u]ints are useful _mostly_ for:
|
small[u]ints are useful _mostly_ for:
|
||||||
|
|
||||||
(a) flag variables
|
(a) flag variables
|
||||||
(a1) global flag variables - make data/bss smaller
|
(a1) global flag variables - make data/bss smaller
|
||||||
(a2) local flag variables - "a = 5", "a |= 0x40" are smaller
|
(a2) local flag variables - "a = 5", "a |= 0x40" are smaller
|
||||||
@ -26,10 +27,11 @@ small[u]ints are useful _mostly_ for:
|
|||||||
movl $0x0,(%eax) is "c7 00 00 00 00 00"
|
movl $0x0,(%eax) is "c7 00 00 00 00 00"
|
||||||
movb $0x0,(%eax) is "c6 00 00"
|
movb $0x0,(%eax) is "c6 00 00"
|
||||||
(b) small integer structure members, when you have many such
|
(b) small integer structure members, when you have many such
|
||||||
structures allocated,
|
structures allocated,
|
||||||
or when these are global objects of this structure type
|
or when these are global objects of this structure type
|
||||||
|
|
||||||
small[u]ints are *NOT* useful for:
|
small[u]ints are *NOT* useful for:
|
||||||
|
|
||||||
(a) function parameters and return values -
|
(a) function parameters and return values -
|
||||||
they are pushed on-stack or stored in registers, bytes here are *harder*
|
they are pushed on-stack or stored in registers, bytes here are *harder*
|
||||||
to deal with than ints
|
to deal with than ints
|
||||||
|
Loading…
Reference in New Issue
Block a user