x86-32: Fix the 6th argument on syscalls invoked via "int $0"
x86-32: Fix the 6th argument on syscalls invoked via "int $0"

The assembly-code signal handler restores %ebp (the 6th system call
argument) from the wrong offset in the signal stack frame.  This
breaks the "offset" argument of the mmap() system call.

This change can be checked against /usr/include/asm/sigcontext.h.
"struct sigcontext" includes:

        unsigned long edi; // offset 0xb4
        unsigned long esi; // offset 0xb8
        unsigned long ebp; // offset 0xbc
        unsigned long esp; // offset 0xc0
        unsigned long ebx; // offset 0xc4
        unsigned long edx; // offset 0xc8
        unsigned long ecx; // offset 0xcc
        unsigned long eax; // offset 0xd0

BUG=none
TEST=Tested via running ld.so (the glibc dynamic linker) under the sandbox.
  I'll add an automated test that does this in a future change.

Review URL: http://codereview.chromium.org/7564032
cnbird1999/seccompsandbox,cnbird1999/seccompsandbox,ericmckean/seccompsandbox,ericmckean/seccompsandbox,cnbird1999/seccompsandbox,ericmckean/seccompsandbox