importing messaging-2008 branch to trunk, going on.
[mono.git] / mono / arch / ppc / test.c
1 #include "ppc-codegen.h"
2 #include <stdio.h>
3
4 /* don't run the resulting program, it will destroy your computer,
5  * just objdump -d it to inspect we generated the correct assembler.
6  * On Mac OS X use otool[64] -v -t
7  */
8
9 int main() {
10         guint8 code [16000];
11         guint8 *p = code;
12         guint8 *cp;
13
14         printf (".text\n.align 4\n.globl main\n");
15 #ifndef __APPLE__
16         printf (".type main,@function\n");
17 #endif
18         printf ("main:\n");
19
20         ppc_stwu (p, ppc_r1, -32, ppc_r1);
21         ppc_mflr (p, ppc_r0);
22         ppc_stw  (p, ppc_r31, 28, ppc_r1);
23         ppc_or   (p, ppc_r1, ppc_r2, ppc_r3);
24         ppc_mr   (p, ppc_r31, ppc_r1);
25         ppc_lwz  (p, ppc_r11, 0, ppc_r1);
26         ppc_mtlr (p, ppc_r0);
27         ppc_blr  (p);
28         ppc_addi (p, ppc_r6, ppc_r6, 16);
29                      
30         for (cp = code; cp < p; cp++) {
31                 printf (".byte 0x%x\n", *cp);
32         }            
33                      
34         return 0;    
35 }