Page MenuHomeFreeBSD

D40364.id122684.diff
No OneTemporary

D40364.id122684.diff

diff --git a/sys/cddl/dev/fbt/aarch64/fbt_isa.c b/sys/cddl/dev/fbt/aarch64/fbt_isa.c
--- a/sys/cddl/dev/fbt/aarch64/fbt_isa.c
+++ b/sys/cddl/dev/fbt/aarch64/fbt_isa.c
@@ -133,35 +133,29 @@
*/
if (*instr == NOP_INSTR)
found = true;
- if (!found) {
- for (; instr < limit; instr++) {
+ for (; !found && instr < limit; instr++) {
+ /*
+ * Some functions start with
+ * "stp xt1, xt2, [xn, <const>]!"
+ */
+ if ((*instr & LDP_STP_MASK) == STP_64) {
/*
- * Some functions start with
- * "stp xt1, xt2, [xn, <const>]!"
+ * Assume any other store of this type means we
+ * are past the function prolog.
*/
- if ((*instr & LDP_STP_MASK) == STP_64) {
- /*
- * Assume any other store of this type means we
- * are past the function prolog.
- */
- if (((*instr >> ADDR_SHIFT) & ADDR_MASK) == 31)
- found = true;
- break;
- }
-
- /*
- * Some functions start with a "sub sp, sp, <const>"
- * Sometimes the compiler will have a sub instruction
- * that is not of the above type so don't stop if we
- * see one.
- */
- if ((*instr & SUB_MASK) == SUB_INSTR &&
- ((*instr >> SUB_RD_SHIFT) & SUB_R_MASK) == 31 &&
- ((*instr >> SUB_RN_SHIFT) & SUB_R_MASK) == 31) {
+ if (((*instr >> ADDR_SHIFT) & ADDR_MASK) == 31)
found = true;
- break;
- }
}
+ /*
+ * Some functions start with a "sub sp, sp, <const>"
+ * Sometimes the compiler will have a sub instruction
+ * that is not of the above type so don't stop if we
+ * see one.
+ */
+ else if ((*instr & SUB_MASK) == SUB_INSTR &&
+ ((*instr >> SUB_RD_SHIFT) & SUB_R_MASK) == 31 &&
+ ((*instr >> SUB_RN_SHIFT) & SUB_R_MASK) == 31)
+ found = true;
}
if (!found)

File Metadata

Mime Type
text/plain
Expires
Tue, Apr 7, 8:28 PM (4 h, 27 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31001816
Default Alt Text
D40364.id122684.diff (1 KB)

Event Timeline