00001 /* Expand the stack by 32 bytes all at once using the PUSHA 00002 instruction. 00003 This must succeed. */ 00004 00005 #include <string.h> 00006 #include "tests/arc4.h" 00007 #include "tests/cksum.h" 00008 #include "tests/lib.h" 00009 #include "tests/main.h" 00010 00011 void 00012 test_main (void) 00013 { 00014 asm volatile 00015 ("movl %%esp, %%eax;" /* Save a copy of the stack pointer. */ 00016 "andl $0xfffff000, %%esp;" /* Move stack pointer to bottom of page. */ 00017 "pushal;" /* Push 32 bytes on stack at once. */ 00018 "movl %%eax, %%esp" /* Restore copied stack pointer. */ 00019 : : : "eax"); /* Tell GCC we destroyed eax. */ 00020 }