1.0.28.11: Fix bug 316325 (x86oid alien integer result truncation)
Change the parameters for :alien-rep alien-type-methods to include a
"CONTEXT" parameter to indicate if the type being sought is for a
function result representation. Ignore the new parameter on all
:alien-rep methods except for (integer :alien-rep).
Change (integer :alien-rep) to return an integer type the full width
of a machine register when asked for the function result
representation.
Condition out the (integer :naturalize-gen) method in
src/code/host-alieneval.lisp on x86oids (it's defined in
src/compiler/x86{,-64}/c-call.lisp).
Change the type deriver for %alien-funcall to request the result
representation for the declared function result type.
In src/compiler/x86{,-64}/c-call.lisp, change the (integer
:naturalize-gen) alien-type-method to do field masking of unsigned
fields when needed.
Also in src/compiler/x86{,-64}/c-call.lisp, fix SIGN-EXTEND to not
lie to the compiler quite so badly about its argument types and add a
comment about a possible future optimization.
Add a test to tests/alien.impure.lisp, for completeness sake.