#define DDV_MASK 0x1
int
-sparclite_insert_watchpoint(addr, len, type)
- CORE_ADDR addr;
- int len;
- int type;
+sparclite_insert_watchpoint (addr, len, type)
+ CORE_ADDR addr;
+ int len;
+ int type;
{
-CORE_ADDR dcr;
+ CORE_ADDR dcr;
dcr = read_register (DCR_REGNUM);
if (!(dcr & DDA1_ENABLE))
- {
- write_register (DDA1_REGNUM, addr);
- dcr &= ~(DDA1_ASI_MASK | DDV_TYPE_MASK);
- dcr |= (DDA1_SUP_ASI | DDA1_ENABLE);
- if (type == 1)
{
- write_register (DDV1_REGNUM, 0);
- write_register (DDV2_REGNUM, 0xffffffff);
- dcr |= (DDV_TYPE_LOAD & (~DDV_COND & ~DDV_MASK));
- }
- else if (type == 0)
- {
- write_register (DDV1_REGNUM, 0);
- write_register (DDV2_REGNUM, 0xffffffff);
- dcr |= (DDV_TYPE_STORE & (~DDV_COND & ~DDV_MASK));
- }
- else
- {
- write_register (DDV1_REGNUM, 0);
- write_register (DDV2_REGNUM, 0xffffffff);
- dcr |= (DDV_TYPE_ACCESS);
+ write_register (DDA1_REGNUM, addr);
+ dcr &= ~(DDA1_ASI_MASK | DDV_TYPE_MASK);
+ dcr |= (DDA1_SUP_ASI | DDA1_ENABLE);
+ if (type == 1)
+ {
+ write_register (DDV1_REGNUM, 0);
+ write_register (DDV2_REGNUM, 0xffffffff);
+ dcr |= (DDV_TYPE_LOAD & (~DDV_COND & ~DDV_MASK));
+ }
+ else if (type == 0)
+ {
+ write_register (DDV1_REGNUM, 0);
+ write_register (DDV2_REGNUM, 0xffffffff);
+ dcr |= (DDV_TYPE_STORE & (~DDV_COND & ~DDV_MASK));
+ }
+ else
+ {
+ write_register (DDV1_REGNUM, 0);
+ write_register (DDV2_REGNUM, 0xffffffff);
+ dcr |= (DDV_TYPE_ACCESS);
+ }
+ write_register (DCR_REGNUM, dcr);
}
- write_register (DCR_REGNUM, dcr);
- }
else if (!(dcr & DDA2_ENABLE))
- {
- write_register (DDA2_REGNUM, addr);
- dcr &= ~(DDA2_ASI_MASK & DDV_TYPE_MASK);
- dcr |= (DDA2_SUP_ASI | DDA2_ENABLE);
- if (type == 1)
- {
- write_register (DDV1_REGNUM, 0);
- write_register (DDV2_REGNUM, 0xffffffff);
- dcr |= (DDV_TYPE_LOAD & ~DDV_COND & ~DDV_MASK);
- }
- else if (type == 0)
- {
- write_register (DDV1_REGNUM, 0);
- write_register (DDV2_REGNUM, 0xffffffff);
- dcr |= (DDV_TYPE_STORE & ~DDV_COND & ~DDV_MASK);
- }
- else
{
- write_register (DDV1_REGNUM, 0);
- write_register (DDV2_REGNUM, 0xffffffff);
- dcr |= (DDV_TYPE_ACCESS);
+ write_register (DDA2_REGNUM, addr);
+ dcr &= ~(DDA2_ASI_MASK & DDV_TYPE_MASK);
+ dcr |= (DDA2_SUP_ASI | DDA2_ENABLE);
+ if (type == 1)
+ {
+ write_register (DDV1_REGNUM, 0);
+ write_register (DDV2_REGNUM, 0xffffffff);
+ dcr |= (DDV_TYPE_LOAD & ~DDV_COND & ~DDV_MASK);
+ }
+ else if (type == 0)
+ {
+ write_register (DDV1_REGNUM, 0);
+ write_register (DDV2_REGNUM, 0xffffffff);
+ dcr |= (DDV_TYPE_STORE & ~DDV_COND & ~DDV_MASK);
+ }
+ else
+ {
+ write_register (DDV1_REGNUM, 0);
+ write_register (DDV2_REGNUM, 0xffffffff);
+ dcr |= (DDV_TYPE_ACCESS);
+ }
+ write_register (DCR_REGNUM, dcr);
}
- write_register (DCR_REGNUM, dcr);
- }
else
return -1;
}
int
-sparclite_remove_watchpoint(addr, len, type)
- CORE_ADDR addr;
- int len;
- int type;
+sparclite_remove_watchpoint (addr, len, type)
+ CORE_ADDR addr;
+ int len;
+ int type;
{
-CORE_ADDR dcr, dda1, dda2;
+ CORE_ADDR dcr, dda1, dda2;
dcr = read_register (DCR_REGNUM);
dda1 = read_register (DDA1_REGNUM);
dda2 = read_register (DDA2_REGNUM);
- if ((dcr & DDA1_ENABLE) && addr == dda1) {
+ if ((dcr & DDA1_ENABLE) && addr == dda1)
write_register (DCR_REGNUM, (dcr & ~DDA1_ENABLE));
- }
- else if ((dcr & DDA2_ENABLE) && addr == dda2) {
+ else if ((dcr & DDA2_ENABLE) && addr == dda2)
write_register (DCR_REGNUM, (dcr & ~DDA2_ENABLE));
- }
else
return -1;
}
int
-sparclite_insert_hw_breakpoint(addr, len)
- CORE_ADDR addr;
- int len;
+sparclite_insert_hw_breakpoint (addr, len)
+ CORE_ADDR addr;
+ int len;
{
-CORE_ADDR dcr;
+ CORE_ADDR dcr;
dcr = read_register (DCR_REGNUM);
- if (!(dcr & DIA1_ENABLE)) {
- write_register (DIA1_REGNUM, addr);
- write_register (DCR_REGNUM, (dcr | DIA1_ENABLE | DIA1_SUP_MODE));
- }
- else if (!(dcr & DIA2_ENABLE)) {
- write_register (DIA2_REGNUM, addr);
- write_register (DCR_REGNUM, (dcr | DIA2_ENABLE | DIA2_SUP_MODE));
- }
+ if (!(dcr & DIA1_ENABLE))
+ {
+ write_register (DIA1_REGNUM, addr);
+ write_register (DCR_REGNUM, (dcr | DIA1_ENABLE | DIA1_SUP_MODE));
+ }
+ else if (!(dcr & DIA2_ENABLE))
+ {
+ write_register (DIA2_REGNUM, addr);
+ write_register (DCR_REGNUM, (dcr | DIA2_ENABLE | DIA2_SUP_MODE));
+ }
else
return -1;
}
int
-sparclite_remove_hw_breakpoint(addr, shadow)
- CORE_ADDR addr;
- int shadow;
+sparclite_remove_hw_breakpoint (addr, shadow)
+ CORE_ADDR addr;
+ int shadow;
{
-CORE_ADDR dcr, dia1, dia2;
+ CORE_ADDR dcr, dia1, dia2;
dcr = read_register (DCR_REGNUM);
dia1 = read_register (DIA1_REGNUM);
dia2 = read_register (DIA2_REGNUM);
- if ((dcr & DIA1_ENABLE) && addr == dia1) {
+ if ((dcr & DIA1_ENABLE) && addr == dia1)
write_register (DCR_REGNUM, (dcr & ~DIA1_ENABLE));
- }
- else if ((dcr & DIA2_ENABLE) && addr == dia2) {
+ else if ((dcr & DIA2_ENABLE) && addr == dia2)
write_register (DCR_REGNUM, (dcr & ~DIA2_ENABLE));
- }
else
return -1;
-
+
return 0;
}
int
-sparclite_check_watch_resources(type, cnt, ot)
- int type;
- int cnt;
- int ot;
+sparclite_check_watch_resources (type, cnt, ot)
+ int type;
+ int cnt;
+ int ot;
{
- if (type == bp_hardware_breakpoint) {
- if (TARGET_HW_BREAK_LIMIT == 0) return 0;
- else if (cnt <= TARGET_HW_BREAK_LIMIT) return 1;
- }
- else {
- if (TARGET_HW_WATCH_LIMIT == 0) return 0;
- else if (ot) return -1;
- else if (cnt <= TARGET_HW_WATCH_LIMIT) return 1;
- }
+ if (type == bp_hardware_breakpoint)
+ if (TARGET_HW_BREAK_LIMIT == 0)
+ return 0;
+ else if (cnt <= TARGET_HW_BREAK_LIMIT)
+ return 1;
+ else
+ if (TARGET_HW_WATCH_LIMIT == 0)
+ return 0;
+ else if (ot)
+ return -1;
+ else if (cnt <= TARGET_HW_WATCH_LIMIT)
+ return 1;
return -1;
}
CORE_ADDR
-sparclite_stopped_data_address()
+sparclite_stopped_data_address ()
{
CORE_ADDR dsr, dda1, dda2;
dda1 = read_register (DDA1_REGNUM);
dda2 = read_register (DDA2_REGNUM);
- if (dsr & 0x10) return dda1;
- else if (dsr & 0x20) return dda2;
- else return 0;
+ if (dsr & 0x10)
+ return dda1;
+ else if (dsr & 0x20)
+ return dda2;
+ else
+ return 0;
}