Update x8632 --> X8632.
Fix the i8 Mul lowering/emission.

We need a special, more restrictive version of the x86 imul
instruction for 8-bit multiplies.
Fix the i8 Udiv/Urem emission.

Unfortunately, in this case we have to explicitly use the ah register
with the div instruction.  Until now, we've been able to avoid the
complications from having 2 indepdendent registers (al and ah) that
alias other registers (ax and eax).  The al/ax/eax aliasing is easily
handled by giving them all the same register number, which makes
liveness analysis and register allocation work out.  To deal with ah
(and the remaining 8-bit registers) properly, we'll need to make the
register allocator explicitly aware of register aliasing, and possibly
liveness analysis as well.

The hack here is to explicitly give ah a distinct register number, but
not include it in any of the register allocator's available register
sets.  That way, the register allocator doesn't touch ah except where
the target lowering pre-colors a variable to ah.
Bitcast bug fixes.

A bitcast with identical src and dest types can be treated as a simple
assignment.

Prevent an assertion failure in address mode optimization.
Pointer bitcasts aren't lowered correctly.

The src operand is dereferenced instead of copied.  Fix later.
Fix calculation of stack offsets for arguments.

Background: During code emission, the current esp offset from its
"home" location is maintained.  Push instructions increment the
offset, and call instructions reset it to 0.  This way, stack
variables can be accurately accessed in the middle of a push sequence
for call.

The problem here is that in the function prolog, saves of callee-save
registers use push instructions, and these push instructions were
inappropriately updating the esp offset.

This bug rarely showed up because:

* The Om1 generator rarely uses callee-save registers (64-bit multiply
being one exception).

* For smaller tests, the O2 generator is aggressive about copying
arguments into registers before the esp adjustment becomes incorrect.

* The esp offset becomes correct after the first call instruction.

The fix (for now) is to add a flag to the push instruction that
suppresses the esp adjustment, and this flag is used for the
callee-save push instructions.