2003-05-25 Francisco Figueiredo Jr. <fxjrlists@yahoo.com.br>
[mono.git] / mono / mini / mini-x86.h
1 #ifndef __MONO_MINI_X86_H__
2 #define __MONO_MINI_X86_H__
3
4 #include <mono/arch/x86/x86-codegen.h>
5
6 #define MONO_ARCH_FRAME_ALIGNMENT 4
7
8 /* fixme: align to 16byte instead of 32byte (we align to 32byte to get 
9  * reproduceable results for benchmarks */
10 #define MONO_ARCH_CODE_ALIGNMENT 32
11
12 #define MONO_ARCH_BASEREG X86_EBP
13 #define MONO_ARCH_RETREG1 X86_EAX
14 #define MONO_ARCH_RETREG2 X86_EDX
15
16 #define MONO_ARCH_ENCODE_LREG(r1,r2) (r1 | (r2<<3))
17
18 #define inst_dreg_low dreg&7 
19 #define inst_dreg_high dreg>>3
20 #define inst_sreg1_low sreg1&7 
21 #define inst_sreg1_high sreg1>>3
22 #define inst_sreg2_low sreg2&7 
23 #define inst_sreg2_high sreg2>>3
24
25 struct MonoLMF {
26         gpointer    previous_lmf;
27         gpointer    lmf_addr;
28         MonoMethod *method;
29         guint32     ebp;
30         guint32     esi;
31         guint32     edi;
32         guint32     ebx;
33         guint32     eip;
34 };
35
36 #endif /* __MONO_MINI_X86_H__ */