Port-ia64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: DDB: BKPT_SET() API suggestion

On 12/21/05, Cherry G. Mathew <cherry.g.mathew%gmail.com@localhost> wrote:
> Adding an option to pass the address, where BKPT_SET() would insert
> breakpoint opcodes would help with VLIW instruction encoding for
> Itanium.
> On Itanium, individual instruction slots within a VLIW are not
> naturally aligned, although the VLIW 'bundle' itself is.
> Until then, breakpoints on NetBSD/ia64 will have VLIW bundle
> granularity. It will only be a minor irritation, as you could single
> step through the individual instruction slots.

That one hit a wall too.....

in ddb/db_break.c: db_set_breakpoints():

bkpt->bkpt_inst = db_get_value(bkpt->address, BKPT_SIZE, FALSE);

unfortunately, bkpt->bkpt_inst is of type db_addr_t with an implicit
assumption that the instruction encoding size is the same as the
machine word size......

Is there another port which has the same issue ?

The easiest solution for ia64 here,  is to rework BKPT_SET() to pass
on address location info as well, so that we could use word size ( 64
bit ) variables to reassemble the VLIW. This is how FreeBSD does it,
and its a simple cut-paste job.

For the Record.



Home | Main Index | Thread Index | Old Index