/* SPDX-License-Identifier: GPL-2.0-only */ /* * User memory copying routines for the Hexagon Kernel * * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
*/
/* The right way to do this involves valignb * The easy way to do this is only speed up src/dest similar alignment.
*/
/* * Copy to/from user are the same, except that for packets with a load and * a store, I don't know how to tell which kind of exception we got. * Therefore, we duplicate the function, and handle faulting addresses * differently for each function
*/
/* STORE FAULTS from COPY_TO_USER */
.falign
1109:
2109:
4109: /* Alignment loop. r2 has been updated. Return it. */
{
r0 = r2
jumpr r31
} /* Normal copy loops. Use dst-dst_sav to compute distance */ /* dst holds best write, no need to unwind any loops */ /* X - (A - B) == X + B - A */
.falign
8189:
8199:
4189:
4199:
2189:
2199:
1189:
1199:
{
r2 += sub(dst_sav,dst)
}
{
r0 = r2
jumpr r31
}
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.