• R/O
  • SSH
  • HTTPS

akari: Commit


Commit MetaInfo

Revision585 (tree)
Zeit2018-03-20 06:01:35
Autorkumaneko

Log Message

(empty log message)

Ändern Zusammenfassung

Diff

--- branches/kportreserve/probe.c (revision 584)
+++ branches/kportreserve/probe.c (revision 585)
@@ -231,11 +231,9 @@
231231 * Find
232232 * adrp Xd, #imm21
233233 * add Xd, Xn, #uimm12
234- * add Xd, Xn, #uimm12
235234 * sequence.
236- * But don't mandate the last one in case it was optimized.
237235 */
238- if ((*ip & 0x98000000) != 0x90000000 ||
236+ if ((*ip & 0x9F000000) != 0x90000000 ||
239237 (*(ip + 1) & 0xFFC00000) != 0x91000000)
240238 continue;
241239 tmp = ((unsigned long) ip) & ~0xFFFUL;
@@ -246,12 +244,20 @@
246244 tmp += offset;
247245 offset = (*(ip + 1) >> 10) & 0xFFF;
248246 tmp += offset;
249- if ((*(ip + 2) & 0xFFC00000) == 0x91000000) {
250- offset = (*(ip + 2) >> 10) & 0xFFF;
247+ /*
248+ * Find
249+ * ldr Xt, Xn, #uimm12
250+ * sequence.
251+ */
252+ for (ip += 2; i < 32 - 2; ip++, i++) {
253+ if ((*ip & 0xFFC00000) != 0xF9400000)
254+ continue;
255+ offset = ((*ip >> 10) & 0xFFF) << 3;
251256 tmp += offset;
257+ ip4ret = (unsigned int *) tmp;
258+ return &ip4ret;
252259 }
253- ip4ret = (unsigned int *) tmp;
254- return &ip4ret;
260+ break;
255261 }
256262 return NULL;
257263 }
--- branches/tasktracker/probe.c (revision 584)
+++ branches/tasktracker/probe.c (revision 585)
@@ -231,11 +231,9 @@
231231 * Find
232232 * adrp Xd, #imm21
233233 * add Xd, Xn, #uimm12
234- * add Xd, Xn, #uimm12
235234 * sequence.
236- * But don't mandate the last one in case it was optimized.
237235 */
238- if ((*ip & 0x98000000) != 0x90000000 ||
236+ if ((*ip & 0x9F000000) != 0x90000000 ||
239237 (*(ip + 1) & 0xFFC00000) != 0x91000000)
240238 continue;
241239 tmp = ((unsigned long) ip) & ~0xFFFUL;
@@ -246,12 +244,20 @@
246244 tmp += offset;
247245 offset = (*(ip + 1) >> 10) & 0xFFF;
248246 tmp += offset;
249- if ((*(ip + 2) & 0xFFC00000) == 0x91000000) {
250- offset = (*(ip + 2) >> 10) & 0xFFF;
247+ /*
248+ * Find
249+ * ldr Xt, Xn, #uimm12
250+ * sequence.
251+ */
252+ for (ip += 2; i < 32 - 2; ip++, i++) {
253+ if ((*ip & 0xFFC00000) != 0xF9400000)
254+ continue;
255+ offset = ((*ip >> 10) & 0xFFF) << 3;
251256 tmp += offset;
257+ ip4ret = (unsigned int *) tmp;
258+ return &ip4ret;
252259 }
253- ip4ret = (unsigned int *) tmp;
254- return &ip4ret;
260+ break;
255261 }
256262 return NULL;
257263 }
--- trunk/akari/probe.c (revision 584)
+++ trunk/akari/probe.c (revision 585)
@@ -231,11 +231,9 @@
231231 * Find
232232 * adrp Xd, #imm21
233233 * add Xd, Xn, #uimm12
234- * add Xd, Xn, #uimm12
235234 * sequence.
236- * But don't mandate the last one in case it was optimized.
237235 */
238- if ((*ip & 0x98000000) != 0x90000000 ||
236+ if ((*ip & 0x9F000000) != 0x90000000 ||
239237 (*(ip + 1) & 0xFFC00000) != 0x91000000)
240238 continue;
241239 tmp = ((unsigned long) ip) & ~0xFFFUL;
@@ -246,12 +244,20 @@
246244 tmp += offset;
247245 offset = (*(ip + 1) >> 10) & 0xFFF;
248246 tmp += offset;
249- if ((*(ip + 2) & 0xFFC00000) == 0x91000000) {
250- offset = (*(ip + 2) >> 10) & 0xFFF;
247+ /*
248+ * Find
249+ * ldr Xt, Xn, #uimm12
250+ * sequence.
251+ */
252+ for (ip += 2; i < 32 - 2; ip++, i++) {
253+ if ((*ip & 0xFFC00000) != 0xF9400000)
254+ continue;
255+ offset = ((*ip >> 10) & 0xFFF) << 3;
251256 tmp += offset;
257+ ip4ret = (unsigned int *) tmp;
258+ return &ip4ret;
252259 }
253- ip4ret = (unsigned int *) tmp;
254- return &ip4ret;
260+ break;
255261 }
256262 return NULL;
257263 }
Show on old repository browser