/* unsigned long xmon_mfspr(sprn, default_value) */
_GLOBAL(xmon_mfspr)
LOAD_REG_ADDR(r5, .Lmfspr_table)
b xmon_mxspr
/* void xmon_mtspr(sprn, new_value) */
_GLOBAL(xmon_mtspr)
LOAD_REG_ADDR(r5, .Lmtspr_table)
b xmon_mxspr
/* * r3 = sprn * r4 = default or new value * r5 = table base
*/
xmon_mxspr: /* * To index into the table of mxsprs we need: * i = (sprn & 0x3ff) * 8 * or using rwlinm: * i = (sprn << 3) & (0x3ff << 3)
*/
rlwinm r3, r3, 3, 0x3ff << 3
add r5, r5, r3
mtctr r5
mr r3, r4 /* put default_value in r3 for mfspr */
bctr
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.