+/* Expand the stack by 32 bytes all at once using the PUSHA
+ instruction.
+ This must succeed. */
+
#include <string.h>
#include "tests/arc4.h"
#include "tests/cksum.h"
test_main (void)
{
asm volatile
- ("mov %%eax, %%esp;" /* Save a copy of the stack pointer. */
- "and %%esp, 0xfffff000;" /* Move stack pointer to bottom of page. */
- "pusha;" /* Push 32 bytes on stack at once. */
- "mov %%esp, %%eax" /* Restore copied stack pointer. */
- ::: "eax"); /* Tell GCC we modified eax. */
+ ("movl %%esp, %%eax;" /* Save a copy of the stack pointer. */
+ "andl $0xfffff000, %%esp;" /* Move stack pointer to bottom of page. */
+ "pushal;" /* Push 32 bytes on stack at once. */
+ "movl %%eax, %%esp" /* Restore copied stack pointer. */
+ : : : "eax"); /* Tell GCC we destroyed eax. */
}