[Cleanup] Don't force unrequested events to be sent.
[mono.git] / mono / mini / mini-alpha.h
index 15a844b65dafa2bef64be69ef3874e8c0e1ed2a1..40d6e4cec80977eaf908c262c4e1616439e632b2 100644 (file)
@@ -5,8 +5,9 @@
 
 #include <mono/arch/alpha/alpha-codegen.h>
 
+#define MONO_ARCH_CPU_SPEC alpha_desc
+
 /* Parameters used by the register allocator */
-#define MONO_ARCH_HAS_XP_LOCAL_REGALLOC
 
 /* Max number of integer registers (all int regs). Required definition */
 #define MONO_MAX_IREGS 31
@@ -50,9 +51,6 @@ typedef struct MonoCompileArch
   gint32 params_stack_size;  // Stack size reserved for call params by this compile method
 
   gpointer    got_data;
-//  gpointer    litpool;
-//  glong       litsize;
   glong       bwx;
 } MonoCompileArch;
 
@@ -67,6 +65,9 @@ struct MonoLMF
   guint64     eip;          // RA ? or caller PC
   guint64     rsp;          // SP ? caller SP
   guint64     rgp;          // GP
+  guint64     r14;
+  guint64     r13;
+  guint64     r12;
 };
 
 #define MONO_ARCH_FRAME_ALIGNMENT 8
@@ -74,7 +75,12 @@ struct MonoLMF
 
 // Regs available for allocation in compile unit
 // For Alpha: r1-r14, r22-r25
-#define MONO_ARCH_CALLEE_REGS  ((regmask_t)0x03C07FFF)
+// 1111 1111 1111 1111 1111 1111 1111 1111
+//  098 7654 3210 9876 5432 1098 7654 3210
+// RRRR RRLL LLAA AAAA RLLL LLLL LLLL LLLL - No global regs
+// RRRR RRLL LLAA AAAA RGGG LLLL LLLL LLLL - 3 global regs
+//#define MONO_ARCH_CALLEE_REGS        ((regmask_t)0x03C07FFF)
+#define MONO_ARCH_CALLEE_REGS ((regmask_t)0x03C00FFF)
 #define MONO_ARCH_CALLEE_FREGS ((regmask_t)0x03C07FFF)
 
 // These are the regs that are considered global
@@ -86,8 +92,8 @@ struct MonoLMF
 // For Alpha - r9-r14. Actually later we could use some of the
 // upper "t" regs, since local reg allocator doesn't like registers
 // very much, so we could safely keep vars in them
-//#define MONO_ARCH_CALLEE_SAVED_REGS ((regmask_t)0xFC0080000)
-#define MONO_ARCH_CALLEE_SAVED_REGS ((regmask_t)0x3C00FE00)
+//#define MONO_ARCH_CALLEE_SAVED_REGS ((regmask_t)0x3C00FE00)
+#define MONO_ARCH_CALLEE_SAVED_REGS ((regmask_t)0x3C00F000)
 #define MONO_ARCH_CALLEE_SAVED_FREGS 0
 
 #define ALPHA_IS_CALLEE_SAVED_REG(reg) (MONO_ARCH_CALLEE_SAVED_REGS & (1 << (reg)))
@@ -107,13 +113,11 @@ struct MonoLMF
    mono_arch_flush_register_windows ();    \
    MONO_CONTEXT_SET_IP ((ctx), (start_func));      \
    MONO_CONTEXT_SET_BP ((ctx), __builtin_frame_address (0)); \
+   MONO_CONTEXT_SET_SP ((ctx), __builtin_frame_address (0)); \
 } while (0)
 
 #define MONO_ARCH_USE_SIGACTION 1
 
-/* Use prerefered create trampoline callback method */
-#define MONO_ARCH_HAVE_CREATE_SPECIFIC_TRAMPOLINE
-
 //#define MONO_ARCH_INST_FIXED_REG(desc) ((desc == 'r') ? IA64_R8 : ((desc == 'g') ? 8 : -1))
 //#define MONO_ARCH_INST_IS_FLOAT(desc) ((desc == 'f') || (desc == 'g'))
 #define MONO_ARCH_INST_SREG2_MASK(ins) (0)
@@ -125,10 +129,6 @@ struct MonoLMF
 //#define MONO_ARCH_INST_FIXED_REG(desc)       (-1)
 #define MONO_ARCH_INST_FIXED_REG(desc)  ((desc == 'o') ? alpha_at : ( (desc == 'a') ? alpha_r0 : -1) )
 
-//#define MONO_ARCH_IS_GLOBAL_IREG(reg) (is_hard_ireg (reg) && ((reg) >= cfg->arch.reg_local0) && ((reg) < cfg->arch.reg_out0))
-
-#define MONO_ARCH_HAVE_CREATE_VARS 1
-
 #if 0
 
 /* r8..r11, r14..r29 */
@@ -272,40 +272,37 @@ mono_ia64_context_get_fp (MonoContext *ctx)
 #define MONO_ARCH_USE_SIGACTION 1
 
 #ifdef HAVE_WORKING_SIGALTSTACK
-#define MONO_ARCH_SIGSEGV_ON_ALTSTACK
+/*#define MONO_ARCH_SIGSEGV_ON_ALTSTACK*/
 #endif
 
 unw_dyn_region_info_t* mono_ia64_create_unwind_region (Ia64CodegenState *code);
 
-#define MONO_ARCH_NO_EMULATE_LONG_SHIFT_OPS 1
 #define MONO_ARCH_NO_EMULATE_MUL_IMM 1
 
 #define MONO_ARCH_HAVE_IS_INT_OVERFLOW 1
 
-#define MONO_ARCH_ENABLE_EMIT_STATE_OPT 1
 #define MONO_ARCH_HAVE_INVALIDATE_METHOD 1
-#define MONO_ARCH_HAVE_THROW_CORLIB_EXCEPTION 1
-#define MONO_ARCH_HAVE_PIC_AOT 1
-#define MONO_ARCH_HAVE_CREATE_TRAMPOLINE_FROM_TOKEN 1
-#define MONO_ARCH_HAVE_CREATE_SPECIFIC_TRAMPOLINE 1
-#define MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE 1
 #define MONO_ARCH_HAVE_SAVE_UNWIND_INFO 1
 
 #endif
 
-#define MONO_ARCH_HAVE_THROW_CORLIB_EXCEPTION 1
+#define MONO_ARCH_NO_EMULATE_LONG_SHIFT_OPS 1
 
 #define MONO_ARCH_EMULATE_CONV_R8_UN     1
 #define MONO_ARCH_EMULATE_LCONV_TO_R8_UN 1
-#define MONO_ARCH_EMULATE_LCONV_TO_R8    1
+//#define MONO_ARCH_EMULATE_LCONV_TO_R8    1
 #define MONO_ARCH_EMULATE_FREM           1
 #define MONO_ARCH_EMULATE_MUL_DIV        1
 #define MONO_ARCH_EMULATE_LONG_MUL_OPTS  1
 #define MONO_ARCH_NEED_DIV_CHECK         1
 
 
-#define MONO_ARCH_HAVE_CREATE_TRAMPOLINE_FROM_TOKEN 1
 #define MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE 1
 
+typedef struct {
+    guint8 *address;
+    guint8 *saved_byte;
+} MonoBreakpointInfo;
 
+extern MonoBreakpointInfo  mono_breakpoint_info[MONO_BREAKPOINT_ARRAY_SIZE];
 #endif /* __MONO_MINI_ALPHA_H__ */