Lines Matching full:index
27 static inline bool hw_local_breakpoint_enabled(unsigned long dr7, int index) in hw_local_breakpoint_enabled() argument
29 return (dr7 >> (index * 2)) & 1; in hw_local_breakpoint_enabled()
32 static inline bool hw_global_breakpoint_enabled(unsigned long dr7, int index) in hw_global_breakpoint_enabled() argument
34 return (dr7 >> (index * 2)) & 2; in hw_global_breakpoint_enabled()
37 static inline bool hw_breakpoint_enabled(unsigned long dr7, int index) in hw_breakpoint_enabled() argument
39 return hw_global_breakpoint_enabled(dr7, index) || in hw_breakpoint_enabled()
40 hw_local_breakpoint_enabled(dr7, index); in hw_breakpoint_enabled()
43 static inline int hw_breakpoint_type(unsigned long dr7, int index) in hw_breakpoint_type() argument
45 return (dr7 >> (DR7_TYPE_SHIFT + (index * 4))) & 3; in hw_breakpoint_type()
48 static inline int hw_breakpoint_len(unsigned long dr7, int index) in hw_breakpoint_len() argument
50 int len = ((dr7 >> (DR7_LEN_SHIFT + (index * 4))) & 3); in hw_breakpoint_len()
54 static int hw_breakpoint_insert(CPUX86State *env, int index) in hw_breakpoint_insert() argument
58 target_ulong drN = env->dr[index]; in hw_breakpoint_insert()
61 switch (hw_breakpoint_type(dr7, index)) { in hw_breakpoint_insert()
63 if (hw_breakpoint_enabled(dr7, index)) { in hw_breakpoint_insert()
65 &env->cpu_breakpoint[index]); in hw_breakpoint_insert()
71 return hw_breakpoint_enabled(env->dr[7], index) in hw_breakpoint_insert()
75 if (hw_breakpoint_enabled(dr7, index)) { in hw_breakpoint_insert()
77 hw_breakpoint_len(dr7, index), in hw_breakpoint_insert()
79 &env->cpu_watchpoint[index]); in hw_breakpoint_insert()
84 if (hw_breakpoint_enabled(dr7, index)) { in hw_breakpoint_insert()
86 hw_breakpoint_len(dr7, index), in hw_breakpoint_insert()
88 &env->cpu_watchpoint[index]); in hw_breakpoint_insert()
93 env->cpu_breakpoint[index] = NULL; in hw_breakpoint_insert()
98 static void hw_breakpoint_remove(CPUX86State *env, int index) in hw_breakpoint_remove() argument
102 switch (hw_breakpoint_type(env->dr[7], index)) { in hw_breakpoint_remove()
104 if (env->cpu_breakpoint[index]) { in hw_breakpoint_remove()
105 cpu_breakpoint_remove_by_ref(cs, env->cpu_breakpoint[index]); in hw_breakpoint_remove()
106 env->cpu_breakpoint[index] = NULL; in hw_breakpoint_remove()
112 if (env->cpu_watchpoint[index]) { in hw_breakpoint_remove()
113 cpu_watchpoint_remove_by_ref(cs, env->cpu_watchpoint[index]); in hw_breakpoint_remove()
114 env->cpu_watchpoint[index] = NULL; in hw_breakpoint_remove()