URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [arch/] [mips64/] [lib/] [watch.S] - Rev 1765
Compare with Previous | Blame | View Log
/** This file is subject to the terms and conditions of the GNU General Public* License. See the file "COPYING" in the main directory of this archive* for more details.** Kernel debug stuff to use the Watch registers.* Useful to find stack overflows, dangling pointers etc.** Copyright (C) 1995, 1996, 1999, 2001 by Ralf Baechle*/#include <asm/asm.h>#include <asm/mipsregs.h>#include <asm/regdef.h>.set noreorder/** Parameter: a0 - physical address to watch* a1 - set bit #1 to trap on load references* bit #0 to trap on store references* Results : none*/LEAF(__watch_set)ori a0, 7xori a0, 7or a0, a1mtc0 a0, CP0_WATCHLOsd a0, watch_savelodsrl32 a0, a0, 0jr ramtc0 zero, CP0_WATCHHIEND(__watch_set)/** Parameter: none* Results : none*/LEAF(__watch_clear)jr ramtc0 zero, CP0_WATCHLOEND(__watch_clear)/** Parameter: none* Results : none*/LEAF(__watch_reenable)ld t0, watch_savelojr ramtc0 t0, CP0_WATCHLOEND(__watch_reenable)/** Saved value of the c0_watchlo register for watch_reenable()*/.local watch_savelo.comm watch_savelo, 8, 8
