x86-64: fix shared libs
x86-64: fix shared libs

The introduction of read32le everywhere created a subtle issue, going
from
   x = *(int*)p;
to
   x = read32le(p);
is not equivalent if x is a larger than 32bit quantity, like an
address on x86_64, because read32le returns an unsigned int.  The first
sign extends, the latter zero extends.  This broke shared library
creation for gawk.  It's enough to amend the case of the above
situation, cases like "write32le(p, read32le(p) +- something)" are okay,
no extensions happen or matter.

mirror/tinycc,metaeducation/tcc,andreiw/tinycc,run4flat/tinycc,metaeducation/tcc,mingodad/tinycc,avih/tinycc,seyko2/tinycc,run4flat/tinycc,mirror/tinycc,seyko2/tinycc,metaeducation/tcc,avih/tinycc,metaeducation/tcc,run4flat/tinycc,code4game/tinycc,mingodad/tinycc,mingodad/tinycc,mingodad/tinycc,mirror/tinycc,mirror/tinycc,seyko2/tinycc,avih/tinycc,run4flat/tinycc,avih/tinycc,andreiw/tinycc,metaeducation/tcc,seyko2/tinycc,andreiw/tinycc,run4flat/tinycc,code4game/tinycc,code4game/tinycc,seyko2/tinycc