Advertisement
Guest User

Untitled

a guest
Dec 3rd, 2021
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 63.40 KB | None | 0 0
  1. .arch armv6k
  2. .eabi_attribute 20, 1 @ Tag_ABI_FP_denormal
  3. .eabi_attribute 21, 1 @ Tag_ABI_FP_exceptions
  4. .eabi_attribute 23, 3 @ Tag_ABI_FP_number_model
  5. .eabi_attribute 24, 1 @ Tag_ABI_align8_needed
  6. .eabi_attribute 25, 1 @ Tag_ABI_align8_preserved
  7. .eabi_attribute 26, 2 @ Tag_ABI_enum_size
  8. .eabi_attribute 30, 2 @ Tag_ABI_optimization_goals
  9. .eabi_attribute 34, 1 @ Tag_CPU_unaligned_access
  10. .eabi_attribute 18, 2 @ Tag_ABI_PCS_wchar_t
  11. .file "core.c"
  12. @ GNU C89 (GCC) version 11.1.0 (arm-linux-gnueabi)
  13. @ compiled by GNU C version 8.3.0, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version isl-0.18-GMP
  14.  
  15. @ GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
  16. @Versions of loaded plugins:
  17. @randomize_layout_plugin: 201402201816vanilla
  18. @ options passed: -mlittle-endian -mapcs -mno-sched-prolog -mabi=aapcs-linux -mfpu=vfp -marm -mtune=arm1136j-s -mfloat-abi=soft -mtls-dialect=gnu -march=armv6k -O2 -std=gnu90 -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -fno-dwarf2-cfi-asm -fno-ipa-sra -fno-delete-null-pointer-checks -fno-allow-store-data-races -fstack-protector-strong -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-stack-clash-protection -fzero-call-used-regs=used-gpr -fno-inline-functions-called-once -falign-functions=64 -fno-strict-overflow -fstack-check=no -fconserve-stack -fplugin=./scripts/gcc-plugins/randomize_layout_plugin.so -fsanitize=kernel-address -fasan-shadow-offset=0x5f000000 --param=asan-globals=1 --param=asan-instrumentation-with-call-threshold=10000 --param=asan-instrument-allocas=1 --param=asan-stack=1
  19. .text
  20. .syntax divided
  21. .syntax unified
  22. .arm
  23. .syntax unified
  24. .section .kprobes.text,"ax",%progbits
  25. .align 2
  26. .p2align 6,,63
  27. .global __kretprobe_trampoline
  28. .syntax unified
  29. .arm
  30. .fpu softvfp
  31. .type __kretprobe_trampoline, %function
  32. __kretprobe_trampoline:
  33. .LASANPC3680:
  34. @ Naked Function: prologue and epilogue provided by programmer.
  35. @ args = 0, pretend = 0, frame = 0
  36. @ frame_needed = 1, uses_anonymous_args = 0
  37. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:378: __asm__ __volatile__ (
  38. .syntax divided
  39. @ 378 "/git/arm-soc/arch/arm/probes/kprobes/core.c" 1
  40. ldr lr, =__kretprobe_trampoline
  41. stmdb sp, {fp, sp, lr, pc}
  42. sub sp, sp, #16
  43. stmdb sp!, {r0 - r11}
  44. add fp, sp, #60
  45. mov r0, sp
  46. bl trampoline_handler
  47. mov lr, r0
  48. ldmia sp!, {r0 - r11}
  49. add sp, sp, #16
  50. mov pc, lr
  51.  
  52. @ 0 "" 2
  53. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:412: }
  54. .arm
  55. .syntax unified
  56. .size __kretprobe_trampoline, .-__kretprobe_trampoline
  57. .section .rodata.str1.4,"aMS",%progbits,1
  58. .align 2
  59. .LC0:
  60. .ascii "1 32 8 11 tmp_insn:51\000"
  61. .section .kprobes.text
  62. .align 2
  63. .p2align 6,,63
  64. .global arch_prepare_kprobe
  65. .syntax unified
  66. .arm
  67. .fpu softvfp
  68. .type arch_prepare_kprobe, %function
  69. arch_prepare_kprobe:
  70. .LASANPC3665:
  71. @ args = 0, pretend = 0, frame = 136
  72. @ frame_needed = 1, uses_anonymous_args = 0
  73. mov ip, sp @,
  74. push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} @
  75. sub fp, ip, #4 @,,
  76. sub sp, sp, #148 @,,
  77. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:49: {
  78. sub r3, fp, #44 @ tmp476,,
  79. bic r6, r3, #31 @ tmp268, tmp476,
  80. ldr r2, .L74 @ tmp271,
  81. sub r3, r6, #96 @ tmp270, tmp268,
  82. str r2, [r6, #-96] @ tmp271,
  83. ldr r2, .L74+4 @ tmp272,
  84. lsr r5, r3, #3 @ tmp274, tmp270,
  85. str r2, [r6, #-92] @ tmp272,
  86. ldr r2, .L74+8 @ tmp273,
  87. mov r4, r0 @ p, tmp467
  88. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:52: unsigned long addr = (unsigned long)p->addr;
  89. add r0, r0, #20 @ _43, p,
  90. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:49: {
  91. str r2, [r6, #-88] @ tmp273,
  92. add r5, r5, #1593835520 @ tmp464, tmp274,
  93. ldr r2, .L74+12 @ tmp277,
  94. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:52: unsigned long addr = (unsigned long)p->addr;
  95. lsr r3, r0, #3 @ tmp285, _43,
  96. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:49: {
  97. str r2, [r5] @ tmp277,
  98. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:52: unsigned long addr = (unsigned long)p->addr;
  99. add r3, r3, #1593835520 @ tmp287, tmp285,
  100. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:49: {
  101. ldr r2, .L74+16 @ tmp278,
  102. str r2, [r5, #4] @ tmp278,
  103. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:52: unsigned long addr = (unsigned long)p->addr;
  104. ldrsb r2, [r3] @ _56, *_51
  105. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:49: {
  106. ldr r3, .L74+20 @ tmp470,
  107. ldr r3, [r3] @ tmp470
  108. str r3, [fp, #-48] @ tmp470, D.44129
  109. mov r3, #0 @ tmp470
  110. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:52: unsigned long addr = (unsigned long)p->addr;
  111. and r3, r0, #7 @ tmp288, _43,
  112. add r3, r3, #3 @ tmp292, tmp288,
  113. cmp r3, r2 @ tmp298, _56
  114. movlt r3, #0 @ tmp298,
  115. movge r3, #1 @ tmp298,
  116. cmp r2, #0 @ _56,
  117. moveq r3, #0 @ tmp298,
  118. cmp r3, #0 @ tmp298,
  119. bne .L61 @,
  120. .L4:
  121. ldr r7, [r4, #20] @ _1, p_24(D)->addr
  122. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:76: if (addr & 0x3)
  123. tst r7, #3 @ _1,
  124. bne .L22 @,
  125. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:78: insn = __mem_to_opcode_arm(*p->addr);
  126. lsr r2, r7, #3 @ tmp300, _1,
  127. add r2, r2, #1593835520 @ tmp302, tmp300,
  128. and r3, r7, #7 @ tmp303, _1,
  129. ldrsb r2, [r2] @ _69, *_68
  130. add r3, r3, #3 @ tmp307, tmp303,
  131. cmp r3, r2 @ tmp313, _69
  132. movlt r3, #0 @ tmp313,
  133. movge r3, #1 @ tmp313,
  134. cmp r2, #0 @ _69,
  135. moveq r3, #0 @ tmp313,
  136. cmp r3, #0 @ tmp313,
  137. bne .L62 @,
  138. .L6:
  139. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:84: p->opcode = insn;
  140. add r0, r4, #40 @ _76, p,
  141. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:78: insn = __mem_to_opcode_arm(*p->addr);
  142. ldr r10, [r7] @ insn, *_1
  143. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:84: p->opcode = insn;
  144. lsr r3, r0, #3 @ tmp314, _76,
  145. add r3, r3, #1593835520 @ tmp316, tmp314,
  146. ldrsb r2, [r3] @ _80, *_79
  147. and r3, r0, #7 @ tmp317, _76,
  148. add r3, r3, #3 @ tmp321, tmp317,
  149. cmp r3, r2 @ tmp327, _80
  150. movlt r3, #0 @ tmp327,
  151. movge r3, #1 @ tmp327,
  152. cmp r2, #0 @ _80,
  153. moveq r3, #0 @ tmp327,
  154. cmp r3, #0 @ tmp327,
  155. bne .L63 @,
  156. .L7:
  157. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:85: p->ainsn.insn = tmp_insn;
  158. add r8, r4, #44 @ _40, p,
  159. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:84: p->opcode = insn;
  160. str r10, [r4, #40] @ insn, p_24(D)->opcode
  161. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:85: p->ainsn.insn = tmp_insn;
  162. lsr r9, r8, #3 @ tmp466, _40,
  163. add r3, r9, #1593835520 @ tmp330, tmp466,
  164. and r7, r8, #7 @ tmp465, _40,
  165. ldrsb r2, [r3] @ _91, *_90
  166. add r3, r7, #3 @ tmp335, tmp465,
  167. cmp r3, r2 @ tmp341, _91
  168. movlt r3, #0 @ tmp341,
  169. movge r3, #1 @ tmp341,
  170. cmp r2, #0 @ _91,
  171. moveq r3, #0 @ tmp341,
  172. cmp r3, #0 @ tmp341,
  173. bne .L64 @,
  174. .L8:
  175. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:87: switch ((*decode_insn)(insn, &p->ainsn, true, actions, checkers)) {
  176. ldr r3, .L74+24 @ tmp344,
  177. mov r0, r10 @, insn
  178. str r3, [sp] @ tmp344,
  179. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:85: p->ainsn.insn = tmp_insn;
  180. sub r3, r6, #64 @ tmp342, tmp268,
  181. str r3, [r4, #44] @ tmp342, p_24(D)->ainsn.insn
  182. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:87: switch ((*decode_insn)(insn, &p->ainsn, true, actions, checkers)) {
  183. mov r2, #1 @,
  184. ldr r3, .L74+28 @,
  185. mov r1, r8 @, _40
  186. bl arm_probes_decode_insn @
  187. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:87: switch ((*decode_insn)(insn, &p->ainsn, true, actions, checkers)) {
  188. cmp r0, #1 @ _4,
  189. beq .L9 @,
  190. cmp r0, #2 @ _4,
  191. beq .L10 @,
  192. cmp r0, #0 @ _4,
  193. beq .L22 @,
  194. .L12:
  195. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:113: if ((p->ainsn.stack_space < 0) ||
  196. add r0, r4, #64 @ _175, p,
  197. and r3, r0, #7 @ tmp451, _175,
  198. lsr r2, r0, #3 @ tmp448, _175,
  199. add r2, r2, #1593835520 @ tmp450, tmp448,
  200. add r3, r3, #3 @ tmp455, tmp451,
  201. ldrsb r2, [r2] @ _179, *_178
  202. cmp r3, r2 @ tmp461, _179
  203. movlt r3, #0 @ tmp461,
  204. movge r3, #1 @ tmp461,
  205. cmp r2, #0 @ _179,
  206. moveq r3, #0 @ tmp461,
  207. cmp r3, #0 @ tmp461,
  208. bne .L65 @,
  209. .L20:
  210. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:113: if ((p->ainsn.stack_space < 0) ||
  211. ldr r3, [r4, #64] @ p_24(D)->ainsn.stack_space, p_24(D)->ainsn.stack_space
  212. cmp r3, #64 @ p_24(D)->ainsn.stack_space,
  213. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:117: return 0;
  214. movls r0, #0 @ <retval>,
  215. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:113: if ((p->ainsn.stack_space < 0) ||
  216. bhi .L22 @,
  217. .L3:
  218. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:49: {
  219. mov r3, #0 @ tmp282,
  220. str r3, [r5] @ tmp282,
  221. str r3, [r5, #4] @ tmp282,
  222. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:118: }
  223. ldr r3, .L74+20 @ tmp472,
  224. ldr r2, [r3] @ tmp473, tmp472
  225. ldr r3, [fp, #-48] @ tmp472, D.44129
  226. eors r2, r3, r2 @ tmp473, tmp472
  227. mov r3, #0 @ tmp472
  228. bne .L66 @,
  229. sub sp, fp, #40 @,,
  230. mov r1, #0 @,
  231. mov r2, #0 @,
  232. mov r3, #0 @,
  233. mov ip, #0 @,
  234. ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} @
  235. .L22:
  236. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:87: switch ((*decode_insn)(insn, &p->ainsn, true, actions, checkers)) {
  237. mvn r0, #21 @ <retval>,
  238. b .L3 @
  239. .L10:
  240. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:104: p->ainsn.insn = NULL;
  241. add r9, r9, #1593835520 @ tmp435, tmp466,
  242. add r7, r7, #3 @ tmp440, tmp465,
  243. ldrsb r3, [r9] @ _168, *_167
  244. cmp r7, r3 @ tmp446, _168
  245. movlt r7, #0 @ tmp446,
  246. movge r7, #1 @ tmp446,
  247. cmp r3, #0 @ _168,
  248. moveq r7, #0 @ tmp446,
  249. cmp r7, #0 @ tmp446,
  250. bne .L67 @,
  251. .L19:
  252. mov r3, #0 @ tmp447,
  253. str r3, [r4, #44] @ tmp447, p_24(D)->ainsn.insn
  254. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:105: break;
  255. b .L12 @
  256. .L9:
  257. @ /git/arm-soc/include/linux/kprobes.h:322: DEFINE_INSN_CACHE_OPS(insn);
  258. ldr r0, .L74+32 @,
  259. bl __get_insn_slot @
  260. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:92: p->ainsn.insn = get_insn_slot();
  261. add r3, r9, #1593835520 @ tmp348, tmp466,
  262. ldrsb r2, [r3] @ _102, *_101
  263. add r3, r7, #3 @ tmp353, tmp465,
  264. cmp r3, r2 @ tmp359, _102
  265. movlt r3, #0 @ tmp359,
  266. movge r3, #1 @ tmp359,
  267. cmp r2, #0 @ _102,
  268. moveq r3, #0 @ tmp359,
  269. cmp r3, #0 @ tmp359,
  270. @ /git/arm-soc/include/linux/kprobes.h:322: DEFINE_INSN_CACHE_OPS(insn);
  271. mov r10, r0 @ _37, tmp469
  272. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:92: p->ainsn.insn = get_insn_slot();
  273. bne .L68 @,
  274. .L13:
  275. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:93: if (!p->ainsn.insn)
  276. cmp r10, #0 @ _37,
  277. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:92: p->ainsn.insn = get_insn_slot();
  278. str r10, [r4, #44] @ _37, p_24(D)->ainsn.insn
  279. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:93: if (!p->ainsn.insn)
  280. beq .L23 @,
  281. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:96: p->ainsn.insn[is] = tmp_insn[is];
  282. lsr r3, r10, #3 @ tmp360, _37,
  283. add r3, r3, #1593835520 @ tmp362, tmp360,
  284. ldrsb r2, [r3] @ _113, *_112
  285. and r3, r10, #7 @ tmp363, _37,
  286. add r3, r3, #3 @ tmp367, tmp363,
  287. cmp r3, r2 @ tmp373, _113
  288. movlt r3, #0 @ tmp373,
  289. movge r3, #1 @ tmp373,
  290. cmp r2, #0 @ _113,
  291. moveq r3, #0 @ tmp373,
  292. cmp r3, #0 @ tmp373,
  293. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:96: p->ainsn.insn[is] = tmp_insn[is];
  294. ldr r3, [r6, #-64] @ _45, tmp_insn[0]
  295. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:96: p->ainsn.insn[is] = tmp_insn[is];
  296. bne .L69 @,
  297. .L14:
  298. str r3, [r10] @ _45, MEM[(probes_opcode_t *)_37]
  299. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:96: p->ainsn.insn[is] = tmp_insn[is];
  300. ldr r10, [r6, #-60] @ _54, tmp_insn[1]
  301. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:96: p->ainsn.insn[is] = tmp_insn[is];
  302. ldr r6, [r4, #44] @ _50, p_24(D)->ainsn.insn
  303. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:96: p->ainsn.insn[is] = tmp_insn[is];
  304. add r0, r6, #4 @ _120, _50,
  305. and r3, r0, #7 @ tmp377, _120,
  306. lsr r2, r0, #3 @ tmp374, _120,
  307. add r2, r2, #1593835520 @ tmp376, tmp374,
  308. add r3, r3, #3 @ tmp381, tmp377,
  309. ldrsb r2, [r2] @ _124, *_123
  310. cmp r3, r2 @ tmp387, _124
  311. movlt r3, #0 @ tmp387,
  312. movge r3, #1 @ tmp387,
  313. cmp r2, #0 @ _124,
  314. moveq r3, #0 @ tmp387,
  315. cmp r3, #0 @ tmp387,
  316. bne .L70 @,
  317. .L15:
  318. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:97: flush_insns(p->ainsn.insn,
  319. ldr r0, .L74+36 @ _131,
  320. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:96: p->ainsn.insn[is] = tmp_insn[is];
  321. str r10, [r6, #4] @ _54, MEM[(probes_opcode_t *)_50 + 4B]
  322. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:97: flush_insns(p->ainsn.insn,
  323. and r3, r0, #7 @ tmp391, _131,
  324. lsr r2, r0, #3 @ tmp388, _131,
  325. add r2, r2, #1593835520 @ tmp390, tmp388,
  326. add r3, r3, #3 @ tmp395, tmp391,
  327. ldrsb r2, [r2] @ _135, *_134
  328. cmp r3, r2 @ tmp401, _135
  329. movlt r3, #0 @ tmp401,
  330. movge r3, #1 @ tmp401,
  331. cmp r2, #0 @ _135,
  332. moveq r3, #0 @ tmp401,
  333. cmp r3, #0 @ tmp401,
  334. bne .L71 @,
  335. .L16:
  336. ldr r3, .L74+40 @ tmp403,
  337. ldr r0, [r4, #44] @ _12, p_24(D)->ainsn.insn
  338. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:100: ((uintptr_t)p->ainsn.insn | thumb);
  339. add r9, r9, #1593835520 @ tmp407, tmp466,
  340. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:97: flush_insns(p->ainsn.insn,
  341. ldr r3, [r3, #20] @ cpu_cache.coherent_kern_range, cpu_cache.coherent_kern_range
  342. add r1, r0, #8 @, _12,
  343. blx r3 @ cpu_cache.coherent_kern_range
  344. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:100: ((uintptr_t)p->ainsn.insn | thumb);
  345. ldrsb r3, [r9] @ _146, *_145
  346. add r7, r7, #3 @ tmp412, tmp465,
  347. cmp r7, r3 @ tmp418, _146
  348. movlt r7, #0 @ tmp418,
  349. movge r7, #1 @ tmp418,
  350. cmp r3, #0 @ _146,
  351. moveq r7, #0 @ tmp418,
  352. cmp r7, #0 @ tmp418,
  353. bne .L72 @,
  354. .L17:
  355. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:99: p->ainsn.insn_fn = (probes_insn_fn_t *)
  356. add r0, r4, #60 @ _153, p,
  357. and r3, r0, #7 @ tmp422, _153,
  358. lsr r2, r0, #3 @ tmp419, _153,
  359. add r2, r2, #1593835520 @ tmp421, tmp419,
  360. add r3, r3, #3 @ tmp426, tmp422,
  361. ldrsb r2, [r2] @ _157, *_156
  362. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:99: p->ainsn.insn_fn = (probes_insn_fn_t *)
  363. ldr r6, [r4, #44] @ _15, p_24(D)->ainsn.insn
  364. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:99: p->ainsn.insn_fn = (probes_insn_fn_t *)
  365. cmp r3, r2 @ tmp432, _157
  366. movlt r3, #0 @ tmp432,
  367. movge r3, #1 @ tmp432,
  368. cmp r2, #0 @ _157,
  369. moveq r3, #0 @ tmp432,
  370. cmp r3, #0 @ tmp432,
  371. bne .L73 @,
  372. .L18:
  373. str r6, [r4, #60] @ _15, p_24(D)->ainsn.insn_fn
  374. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:101: break;
  375. b .L12 @
  376. .L23:
  377. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:94: return -ENOMEM;
  378. mvn r0, #11 @ <retval>,
  379. b .L3 @
  380. .L61:
  381. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:52: unsigned long addr = (unsigned long)p->addr;
  382. bl __asan_report_load4_noabort @
  383. b .L4 @
  384. .L64:
  385. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:85: p->ainsn.insn = tmp_insn;
  386. mov r0, r8 @, _40
  387. bl __asan_report_store4_noabort @
  388. b .L8 @
  389. .L63:
  390. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:84: p->opcode = insn;
  391. bl __asan_report_store4_noabort @
  392. b .L7 @
  393. .L62:
  394. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:78: insn = __mem_to_opcode_arm(*p->addr);
  395. mov r0, r7 @, _1
  396. bl __asan_report_load4_noabort @
  397. b .L6 @
  398. .L65:
  399. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:113: if ((p->ainsn.stack_space < 0) ||
  400. bl __asan_report_load4_noabort @
  401. b .L20 @
  402. .L66:
  403. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:118: }
  404. bl __stack_chk_fail @
  405. .L69:
  406. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:96: p->ainsn.insn[is] = tmp_insn[is];
  407. mov r0, r10 @, _37
  408. str r3, [fp, #-176] @ _45, %sfp
  409. bl __asan_report_store4_noabort @
  410. ldr r3, [fp, #-176] @ _45, %sfp
  411. b .L14 @
  412. .L73:
  413. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:99: p->ainsn.insn_fn = (probes_insn_fn_t *)
  414. bl __asan_report_store4_noabort @
  415. b .L18 @
  416. .L67:
  417. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:104: p->ainsn.insn = NULL;
  418. mov r0, r8 @, _40
  419. bl __asan_report_store4_noabort @
  420. b .L19 @
  421. .L70:
  422. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:96: p->ainsn.insn[is] = tmp_insn[is];
  423. bl __asan_report_store4_noabort @
  424. b .L15 @
  425. .L71:
  426. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:97: flush_insns(p->ainsn.insn,
  427. bl __asan_report_load4_noabort @
  428. b .L16 @
  429. .L72:
  430. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:100: ((uintptr_t)p->ainsn.insn | thumb);
  431. mov r0, r8 @, _40
  432. bl __asan_report_load4_noabort @
  433. b .L17 @
  434. .L68:
  435. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:92: p->ainsn.insn = get_insn_slot();
  436. mov r0, r8 @, _40
  437. bl __asan_report_store4_noabort @
  438. b .L13 @
  439. .L75:
  440. .align 2
  441. .L74:
  442. .word 1102416563
  443. .word .LC0
  444. .word .LASANPC3665
  445. .word -235802127
  446. .word -202116352
  447. .word __stack_chk_guard
  448. .word kprobes_arm_checkers
  449. .word kprobes_arm_actions
  450. .word kprobe_insn_slots
  451. .word cpu_cache+20
  452. .word cpu_cache
  453. .size arch_prepare_kprobe, .-arch_prepare_kprobe
  454. .align 2
  455. .p2align 6,,63
  456. .global arch_arm_kprobe
  457. .syntax unified
  458. .arm
  459. .fpu softvfp
  460. .type arch_arm_kprobe, %function
  461. arch_arm_kprobe:
  462. .LASANPC3666:
  463. @ args = 0, pretend = 0, frame = 8
  464. @ frame_needed = 1, uses_anonymous_args = 0
  465. mov ip, sp @,
  466. push {r4, fp, ip, lr, pc} @
  467. sub fp, ip, #4 @,,
  468. sub sp, sp, #12 @,,
  469. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:121: {
  470. mov r4, r0 @ p, tmp172
  471. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:134: kprobe_opcode_t insn = p->opcode;
  472. add r0, r0, #40 @ _13, p,
  473. and r3, r0, #7 @ tmp145, _13,
  474. lsr r2, r0, #3 @ tmp142, _13,
  475. add r2, r2, #1593835520 @ tmp144, tmp142,
  476. add r3, r3, #3 @ tmp149, tmp145,
  477. ldrsb r2, [r2] @ _17, *_16
  478. cmp r3, r2 @ tmp155, _17
  479. movlt r3, #0 @ tmp155,
  480. movge r3, #1 @ tmp155,
  481. cmp r2, #0 @ _17,
  482. moveq r3, #0 @ tmp155,
  483. cmp r3, #0 @ tmp155,
  484. bne .L87 @,
  485. .L77:
  486. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:136: addr = p->addr;
  487. add r0, r4, #20 @ _24, p,
  488. and r3, r0, #7 @ tmp159, _24,
  489. lsr r2, r0, #3 @ tmp156, _24,
  490. add r2, r2, #1593835520 @ tmp158, tmp156,
  491. add r3, r3, #3 @ tmp163, tmp159,
  492. ldrsb r2, [r2] @ _28, *_27
  493. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:134: kprobe_opcode_t insn = p->opcode;
  494. ldr r1, [r4, #40] @ insn, p_3(D)->opcode
  495. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:136: addr = p->addr;
  496. cmp r3, r2 @ tmp169, _28
  497. movlt r3, #0 @ tmp169,
  498. movge r3, #1 @ tmp169,
  499. cmp r2, #0 @ _28,
  500. moveq r3, #0 @ tmp169,
  501. cmp r3, #0 @ tmp169,
  502. bne .L88 @,
  503. .L78:
  504. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:139: if (insn >= 0xe0000000)
  505. cmn r1, #536870913 @ insn,
  506. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:142: brkp |= insn & 0xf0000000; /* Copy condition from insn */
  507. andls r1, r1, #-268435456 @ tmp170, insn,
  508. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:142: brkp |= insn & 0xf0000000; /* Copy condition from insn */
  509. orrls r1, r1, #133169152 @ brkp, tmp170,
  510. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:136: addr = p->addr;
  511. ldr r0, [r4, #20] @ addr, p_3(D)->addr
  512. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:140: brkp |= 0xe0000000; /* Unconditional instruction */
  513. ldrhi r1, .L89 @ brkp,
  514. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:142: brkp |= insn & 0xf0000000; /* Copy condition from insn */
  515. orrls r1, r1, #504 @ brkp, brkp,
  516. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:145: patch_text(addr, brkp);
  517. bl patch_text @
  518. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:146: }
  519. sub sp, fp, #16 @,,
  520. mov r0, #0 @,
  521. mov r1, #0 @,
  522. mov r2, #0 @,
  523. mov r3, #0 @,
  524. mov ip, #0 @,
  525. mov lr, #0 @,
  526. ldmfd sp, {r4, fp, sp, pc} @
  527. .L87:
  528. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:134: kprobe_opcode_t insn = p->opcode;
  529. bl __asan_report_load4_noabort @
  530. b .L77 @
  531. .L88:
  532. str r1, [fp, #-24] @ insn, %sfp
  533. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:136: addr = p->addr;
  534. bl __asan_report_load4_noabort @
  535. ldr r1, [fp, #-24] @ insn, %sfp
  536. b .L78 @
  537. .L90:
  538. .align 2
  539. .L89:
  540. .word -403701256
  541. .size arch_arm_kprobe, .-arch_arm_kprobe
  542. .align 2
  543. .p2align 6,,63
  544. .global kprobes_remove_breakpoint
  545. .syntax unified
  546. .arm
  547. .fpu softvfp
  548. .type kprobes_remove_breakpoint, %function
  549. kprobes_remove_breakpoint:
  550. .LASANPC3668:
  551. @ args = 0, pretend = 0, frame = 0
  552. @ frame_needed = 1, uses_anonymous_args = 0
  553. mov ip, sp @,
  554. push {r4, r5, r6, r7, fp, ip, lr, pc} @
  555. sub fp, ip, #4 @,,
  556. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:169: {
  557. mov r4, r0 @ addr, tmp129
  558. mov r5, r1 @ insn, tmp130
  559. @ /git/arm-soc/arch/arm/include/asm/irqflags.h:29: asm volatile(
  560. .syntax divided
  561. @ 29 "/git/arm-soc/arch/arm/include/asm/irqflags.h" 1
  562. mrs r6, cpsr @ arch_local_irq_save @ flags
  563. cpsid i
  564. @ 0 "" 2
  565. @ /git/arm-soc/include/linux/stop_machine.h:136: local_irq_save(flags);
  566. .arm
  567. .syntax unified
  568. tst r6, #128 @ flags,
  569. beq .L96 @,
  570. @ /git/arm-soc/arch/arm/include/asm/patch.h:10: __patch_text_real(addr, insn, true);
  571. mov r2, #1 @,
  572. bl __patch_text_real @
  573. .L94:
  574. @ /git/arm-soc/arch/arm/include/asm/irqflags.h:159: asm volatile(
  575. .syntax divided
  576. @ 159 "/git/arm-soc/arch/arm/include/asm/irqflags.h" 1
  577. mrs r2, cpsr @ local_save_flags @ flags
  578. @ 0 "" 2
  579. @ /git/arm-soc/include/linux/stop_machine.h:138: local_irq_restore(flags);
  580. .arm
  581. .syntax unified
  582. mov r3, #0 @,
  583. ands r4, r2, #128 @ _12, flags,
  584. moveq r1, #1 @,
  585. movne r1, r3 @,
  586. ldr r0, .L98 @,
  587. mov r2, r3 @,
  588. bl ftrace_likely_update @
  589. cmp r4, #0 @ _12,
  590. beq .L97 @,
  591. @ /git/arm-soc/arch/arm/include/asm/irqflags.h:171: asm volatile(
  592. .syntax divided
  593. @ 171 "/git/arm-soc/arch/arm/include/asm/irqflags.h" 1
  594. msr cpsr_c, r6 @ local_irq_restore @ flags
  595. @ 0 "" 2
  596. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:176: }
  597. .arm
  598. .syntax unified
  599. mov r0, #0 @,
  600. mov r1, #0 @,
  601. mov r2, #0 @,
  602. mov r3, #0 @,
  603. mov ip, #0 @,
  604. mov lr, #0 @,
  605. ldmfd sp, {r4, r5, r6, r7, fp, sp, pc} @
  606. .L96:
  607. @ /git/arm-soc/include/linux/stop_machine.h:136: local_irq_save(flags);
  608. bl trace_hardirqs_off @
  609. @ /git/arm-soc/arch/arm/include/asm/patch.h:10: __patch_text_real(addr, insn, true);
  610. mov r2, #1 @,
  611. mov r1, r5 @, insn
  612. mov r0, r4 @, addr
  613. bl __patch_text_real @
  614. @ /git/arm-soc/include/linux/stop_machine.h:138: local_irq_restore(flags);
  615. bl trace_hardirqs_on @
  616. b .L94 @
  617. .L97:
  618. bl warn_bogus_irq_restore @
  619. @ /git/arm-soc/arch/arm/include/asm/irqflags.h:171: asm volatile(
  620. .syntax divided
  621. @ 171 "/git/arm-soc/arch/arm/include/asm/irqflags.h" 1
  622. msr cpsr_c, r6 @ local_irq_restore @ flags
  623. @ 0 "" 2
  624. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:176: }
  625. .arm
  626. .syntax unified
  627. mov r0, #0 @,
  628. mov r1, #0 @,
  629. mov r2, #0 @,
  630. mov r3, #0 @,
  631. mov ip, #0 @,
  632. mov lr, #0 @,
  633. ldmfd sp, {r4, r5, r6, r7, fp, sp, pc} @
  634. .L99:
  635. .align 2
  636. .L98:
  637. .word .LANCHOR0
  638. .size kprobes_remove_breakpoint, .-kprobes_remove_breakpoint
  639. .align 2
  640. .p2align 6,,63
  641. .global arch_disarm_kprobe
  642. .syntax unified
  643. .arm
  644. .fpu softvfp
  645. .type arch_disarm_kprobe, %function
  646. arch_disarm_kprobe:
  647. .LASANPC3669:
  648. @ args = 0, pretend = 0, frame = 0
  649. @ frame_needed = 1, uses_anonymous_args = 0
  650. mov ip, sp @,
  651. push {r4, r5, fp, ip, lr, pc} @
  652. sub fp, ip, #4 @,,
  653. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:179: {
  654. mov r4, r0 @ p, tmp173
  655. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:180: kprobes_remove_breakpoint((void *)((uintptr_t)p->addr & ~1),
  656. add r0, r0, #20 @ _13, p,
  657. and r3, r0, #7 @ tmp146, _13,
  658. lsr r2, r0, #3 @ tmp143, _13,
  659. add r2, r2, #1593835520 @ tmp145, tmp143,
  660. add r3, r3, #3 @ tmp150, tmp146,
  661. ldrsb r2, [r2] @ _17, *_16
  662. cmp r3, r2 @ tmp156, _17
  663. movlt r3, #0 @ tmp156,
  664. movge r3, #1 @ tmp156,
  665. cmp r2, #0 @ _17,
  666. moveq r3, #0 @ tmp156,
  667. cmp r3, #0 @ tmp156,
  668. bne .L109 @,
  669. .L101:
  670. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:180: kprobes_remove_breakpoint((void *)((uintptr_t)p->addr & ~1),
  671. add r0, r4, #40 @ _24, p,
  672. and r3, r0, #7 @ tmp161, _24,
  673. lsr r2, r0, #3 @ tmp158, _24,
  674. add r2, r2, #1593835520 @ tmp160, tmp158,
  675. add r3, r3, #3 @ tmp165, tmp161,
  676. ldrsb r2, [r2] @ _28, *_27
  677. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:180: kprobes_remove_breakpoint((void *)((uintptr_t)p->addr & ~1),
  678. ldr r5, [r4, #20] @ p_7(D)->addr, p_7(D)->addr
  679. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:180: kprobes_remove_breakpoint((void *)((uintptr_t)p->addr & ~1),
  680. cmp r3, r2 @ tmp171, _28
  681. movlt r3, #0 @ tmp171,
  682. movge r3, #1 @ tmp171,
  683. cmp r2, #0 @ _28,
  684. moveq r3, #0 @ tmp171,
  685. cmp r3, #0 @ tmp171,
  686. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:180: kprobes_remove_breakpoint((void *)((uintptr_t)p->addr & ~1),
  687. bic r5, r5, #1 @ _4, p_7(D)->addr,
  688. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:180: kprobes_remove_breakpoint((void *)((uintptr_t)p->addr & ~1),
  689. bne .L110 @,
  690. .L102:
  691. ldr r1, [r4, #40] @, p_7(D)->opcode
  692. mov r0, r5 @, _4
  693. bl kprobes_remove_breakpoint @
  694. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:182: }
  695. mov r0, #0 @,
  696. mov r1, #0 @,
  697. mov r2, #0 @,
  698. mov r3, #0 @,
  699. mov ip, #0 @,
  700. mov lr, #0 @,
  701. ldmfd sp, {r4, r5, fp, sp, pc} @
  702. .L109:
  703. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:180: kprobes_remove_breakpoint((void *)((uintptr_t)p->addr & ~1),
  704. bl __asan_report_load4_noabort @
  705. b .L101 @
  706. .L110:
  707. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:180: kprobes_remove_breakpoint((void *)((uintptr_t)p->addr & ~1),
  708. bl __asan_report_load4_noabort @
  709. b .L102 @
  710. .size arch_disarm_kprobe, .-arch_disarm_kprobe
  711. .align 2
  712. .p2align 6,,63
  713. .global arch_remove_kprobe
  714. .syntax unified
  715. .arm
  716. .fpu softvfp
  717. .type arch_remove_kprobe, %function
  718. arch_remove_kprobe:
  719. .LASANPC3670:
  720. @ args = 0, pretend = 0, frame = 0
  721. @ frame_needed = 1, uses_anonymous_args = 0
  722. mov ip, sp @,
  723. push {r4, r5, r6, r7, fp, ip, lr, pc} @
  724. sub fp, ip, #4 @,,
  725. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:186: if (p->ainsn.insn) {
  726. add r7, r0, #44 @ _7, p,
  727. and r5, r7, #7 @ tmp168, _7,
  728. lsr r6, r7, #3 @ tmp169, _7,
  729. add r2, r6, #1593835520 @ tmp140, tmp169,
  730. add r3, r5, #3 @ tmp145, tmp168,
  731. ldrsb r2, [r2] @ _14, *_13
  732. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:185: {
  733. mov r4, r0 @ p, tmp170
  734. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:186: if (p->ainsn.insn) {
  735. cmp r3, r2 @ tmp151, _14
  736. movlt r3, #0 @ tmp151,
  737. movge r3, #1 @ tmp151,
  738. cmp r2, #0 @ _14,
  739. moveq r3, #0 @ tmp151,
  740. cmp r3, #0 @ tmp151,
  741. bne .L124 @,
  742. .L112:
  743. ldr r1, [r4, #44] @ _1, p_4(D)->ainsn.insn
  744. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:186: if (p->ainsn.insn) {
  745. cmp r1, #0 @ _1,
  746. mov r0, #0 @,
  747. mov r2, #0 @,
  748. mov r3, #0 @,
  749. mov ip, #0 @,
  750. ldmfdeq sp, {r4, r5, r6, r7, fp, sp, pc} @
  751. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:188: p->ainsn.insn = NULL;
  752. add r6, r6, #1593835520 @ tmp155, tmp169,
  753. @ /git/arm-soc/include/linux/kprobes.h:322: DEFINE_INSN_CACHE_OPS(insn);
  754. ldr r0, .L126 @,
  755. mov r2, #0 @,
  756. bl __free_insn_slot @
  757. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:188: p->ainsn.insn = NULL;
  758. ldrsb r3, [r6] @ _25, *_24
  759. add r5, r5, #3 @ tmp160, tmp168,
  760. cmp r5, r3 @ tmp166, _25
  761. movlt r5, #0 @ tmp166,
  762. movge r5, #1 @ tmp166,
  763. cmp r3, #0 @ _25,
  764. moveq r5, #0 @ tmp166,
  765. cmp r5, #0 @ tmp166,
  766. bne .L125 @,
  767. .L114:
  768. mov r3, #0 @ tmp167,
  769. str r3, [r4, #44] @ tmp167, p_4(D)->ainsn.insn
  770. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:190: }
  771. mov r0, #0 @,
  772. mov r1, #0 @,
  773. mov r2, #0 @,
  774. mov r3, #0 @,
  775. mov ip, #0 @,
  776. mov lr, #0 @,
  777. ldmfd sp, {r4, r5, r6, r7, fp, sp, pc} @
  778. .L124:
  779. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:186: if (p->ainsn.insn) {
  780. mov r0, r7 @, _7
  781. bl __asan_report_load4_noabort @
  782. b .L112 @
  783. .L125:
  784. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:188: p->ainsn.insn = NULL;
  785. mov r0, r7 @, _7
  786. bl __asan_report_store4_noabort @
  787. b .L114 @
  788. .L127:
  789. .align 2
  790. .L126:
  791. .word kprobe_insn_slots
  792. .size arch_remove_kprobe, .-arch_remove_kprobe
  793. .align 2
  794. .p2align 6,,63
  795. .global kprobe_handler
  796. .syntax unified
  797. .arm
  798. .fpu softvfp
  799. .type kprobe_handler, %function
  800. kprobe_handler:
  801. .LASANPC3676:
  802. @ args = 0, pretend = 0, frame = 8
  803. @ frame_needed = 1, uses_anonymous_args = 0
  804. mov ip, sp @,
  805. push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} @
  806. sub fp, ip, #4 @,,
  807. sub sp, sp, #12 @,,
  808. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:255: p = get_kprobe((kprobe_opcode_t *)regs->ARM_pc);
  809. add r8, r0, #60 @ _54, regs,
  810. and r6, r8, #7 @ tmp433, _54,
  811. lsr r7, r8, #3 @ tmp434, _54,
  812. add r3, r7, #1593835520 @ tmp259, tmp434,
  813. @ /git/arm-soc/include/linux/kprobes.h:373: return __this_cpu_read(current_kprobe);
  814. ldr r9, .L201 @ tmp432,
  815. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:255: p = get_kprobe((kprobe_opcode_t *)regs->ARM_pc);
  816. ldrsb r2, [r3] @ _11, *_74
  817. add r3, r6, #3 @ tmp264, tmp433,
  818. @ /git/arm-soc/include/linux/kprobes.h:373: return __this_cpu_read(current_kprobe);
  819. ldr r10, [r9] @ pscr_ret__, current_kprobe
  820. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:255: p = get_kprobe((kprobe_opcode_t *)regs->ARM_pc);
  821. cmp r3, r2 @ tmp270, _11
  822. movlt r3, #0 @ tmp270,
  823. movge r3, #1 @ tmp270,
  824. cmp r2, #0 @ _11,
  825. moveq r3, #0 @ tmp270,
  826. cmp r3, #0 @ tmp270,
  827. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:237: {
  828. mov r5, r0 @ regs, tmp435
  829. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:255: p = get_kprobe((kprobe_opcode_t *)regs->ARM_pc);
  830. bne .L190 @,
  831. .L129:
  832. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:255: p = get_kprobe((kprobe_opcode_t *)regs->ARM_pc);
  833. ldr r0, [r5, #60] @, regs_17(D)->uregs[15]
  834. bl get_kprobe @
  835. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:258: if (p) {
  836. subs r4, r0, #0 @ p, tmp436
  837. beq .L128 @,
  838. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:259: if (!p->ainsn.insn_check_cc(regs->ARM_cpsr)) {
  839. add r0, r4, #52 @ _83, p,
  840. and r3, r0, #7 @ tmp275, _83,
  841. lsr r2, r0, #3 @ tmp272, _83,
  842. add r2, r2, #1593835520 @ tmp274, tmp272,
  843. add r3, r3, #3 @ tmp279, tmp275,
  844. ldrsb r2, [r2] @ _87, *_86
  845. cmp r3, r2 @ tmp285, _87
  846. movlt r3, #0 @ tmp285,
  847. movge r3, #1 @ tmp285,
  848. cmp r2, #0 @ _87,
  849. moveq r3, #0 @ tmp285,
  850. cmp r3, #0 @ tmp285,
  851. bne .L191 @,
  852. .L131:
  853. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:259: if (!p->ainsn.insn_check_cc(regs->ARM_cpsr)) {
  854. add r0, r5, #64 @ _94, regs,
  855. and r3, r0, #7 @ tmp289, _94,
  856. lsr r2, r0, #3 @ tmp286, _94,
  857. add r2, r2, #1593835520 @ tmp288, tmp286,
  858. add r3, r3, #3 @ tmp293, tmp289,
  859. ldrsb r2, [r2] @ _98, *_97
  860. cmp r3, r2 @ tmp299, _98
  861. movlt r3, #0 @ tmp299,
  862. movge r3, #1 @ tmp299,
  863. cmp r2, #0 @ _98,
  864. moveq r3, #0 @ tmp299,
  865. cmp r3, #0 @ tmp299,
  866. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:259: if (!p->ainsn.insn_check_cc(regs->ARM_cpsr)) {
  867. ldr r3, [r4, #52] @ _3, p_19->ainsn.insn_check_cc
  868. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:259: if (!p->ainsn.insn_check_cc(regs->ARM_cpsr)) {
  869. bne .L192 @,
  870. .L132:
  871. ldr r0, [r5, #64] @, regs_17(D)->uregs[16]
  872. blx r3 @ _3
  873. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:259: if (!p->ainsn.insn_check_cc(regs->ARM_cpsr)) {
  874. cmp r0, #0 @ tmp437,
  875. bne .L133 @,
  876. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:219: regs->ARM_pc += 4;
  877. add r7, r7, #1593835520 @ tmp303, tmp434,
  878. add r6, r6, #3 @ tmp308, tmp433,
  879. ldrsb r3, [r7] @ _109, *_108
  880. cmp r6, r3 @ tmp314, _109
  881. movlt r6, #0 @ tmp314,
  882. movge r6, #1 @ tmp314,
  883. cmp r3, #0 @ _109,
  884. moveq r6, #0 @ tmp314,
  885. cmp r6, #0 @ tmp314,
  886. bne .L193 @,
  887. .L134:
  888. ldr r3, [r5, #60] @ regs_17(D)->uregs[15], regs_17(D)->uregs[15]
  889. add r3, r3, #4 @ tmp315, regs_17(D)->uregs[15],
  890. str r3, [r5, #60] @ tmp315, regs_17(D)->uregs[15]
  891. .L128:
  892. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:320: }
  893. sub sp, fp, #40 @,,
  894. mov r0, #0 @,
  895. mov r1, #0 @,
  896. mov r2, #0 @,
  897. mov r3, #0 @,
  898. mov ip, #0 @,
  899. mov lr, #0 @,
  900. ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} @
  901. .L133:
  902. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:267: } else if (cur) {
  903. cmp r10, #0 @ pscr_ret__,
  904. beq .L135 @,
  905. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:269: switch (kcb->kprobe_status) {
  906. ldr r6, .L201+4 @ tmp431,
  907. ldr r3, [r6] @ _6, kprobe_ctlblk.kprobe_status
  908. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:269: switch (kcb->kprobe_status) {
  909. cmp r3, #8 @ _6,
  910. beq .L136 @,
  911. bhi .L137 @,
  912. cmp r3, #2 @ _6,
  913. bhi .L138 @,
  914. cmp r3, #0 @ _6,
  915. beq .L137 @,
  916. .L136:
  917. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:274: kprobes_inc_nmissed_count(p);
  918. mov r0, r4 @, p
  919. bl kprobes_inc_nmissed_count @
  920. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:194: kcb->prev_kprobe.kp = kprobe_running();
  921. ldr r3, [r9] @ current_kprobe, current_kprobe
  922. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:226: p->ainsn.insn_singlestep(p->opcode, &p->ainsn, regs);
  923. add r0, r4, #56 @ _116, p,
  924. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:194: kcb->prev_kprobe.kp = kprobe_running();
  925. str r3, [r6, #4] @ current_kprobe, kprobe_ctlblk.prev_kprobe.kp
  926. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:195: kcb->prev_kprobe.status = kcb->kprobe_status;
  927. ldr r3, [r6] @ kprobe_ctlblk.kprobe_status, kprobe_ctlblk.kprobe_status
  928. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:206: __this_cpu_write(current_kprobe, p);
  929. str r4, [r9] @ p, current_kprobe
  930. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:195: kcb->prev_kprobe.status = kcb->kprobe_status;
  931. str r3, [r6, #8] @ kprobe_ctlblk.kprobe_status, kprobe_ctlblk.prev_kprobe.status
  932. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:277: kcb->kprobe_status = KPROBE_REENTER;
  933. mov r3, #4 @ tmp326,
  934. str r3, [r6] @ tmp326, kprobe_ctlblk.kprobe_status
  935. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:226: p->ainsn.insn_singlestep(p->opcode, &p->ainsn, regs);
  936. lsr r3, r0, #3 @ tmp327, _116,
  937. add r3, r3, #1593835520 @ tmp329, tmp327,
  938. ldrsb r2, [r3] @ _120, *_119
  939. and r3, r0, #7 @ tmp330, _116,
  940. add r3, r3, #3 @ tmp334, tmp330,
  941. cmp r3, r2 @ tmp340, _120
  942. movlt r3, #0 @ tmp340,
  943. movge r3, #1 @ tmp340,
  944. cmp r2, #0 @ _120,
  945. moveq r3, #0 @ tmp340,
  946. cmp r3, #0 @ tmp340,
  947. bne .L194 @,
  948. .L140:
  949. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:226: p->ainsn.insn_singlestep(p->opcode, &p->ainsn, regs);
  950. add r0, r4, #40 @ _127, p,
  951. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:226: p->ainsn.insn_singlestep(p->opcode, &p->ainsn, regs);
  952. ldr r7, [r4, #56] @ _34, p_19->ainsn.insn_singlestep
  953. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:226: p->ainsn.insn_singlestep(p->opcode, &p->ainsn, regs);
  954. lsr r3, r0, #3 @ tmp341, _127,
  955. add r3, r3, #1593835520 @ tmp343, tmp341,
  956. ldrsb r2, [r3] @ _131, *_130
  957. and r3, r0, #7 @ tmp344, _127,
  958. add r3, r3, #3 @ tmp348, tmp344,
  959. cmp r3, r2 @ tmp354, _131
  960. movlt r3, #0 @ tmp354,
  961. movge r3, #1 @ tmp354,
  962. cmp r2, #0 @ _131,
  963. moveq r3, #0 @ tmp354,
  964. cmp r3, #0 @ tmp354,
  965. bne .L195 @,
  966. .L141:
  967. mov r2, r5 @, regs
  968. ldr r0, [r4, #40] @, p_19->opcode
  969. add r1, r4, #44 @, p,
  970. blx r7 @ _34
  971. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:201: kcb->kprobe_status = kcb->prev_kprobe.status;
  972. ldrd r2, [r6, #4] @, tmp431,
  973. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:200: __this_cpu_write(current_kprobe, kcb->prev_kprobe.kp);
  974. str r2, [r9] @ kprobe_ctlblk.prev_kprobe.kp, current_kprobe
  975. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:201: kcb->kprobe_status = kcb->prev_kprobe.status;
  976. str r3, [r6] @ kprobe_ctlblk.prev_kprobe.status, kprobe_ctlblk.kprobe_status
  977. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:320: }
  978. sub sp, fp, #40 @,,
  979. mov r0, #0 @,
  980. mov r1, #0 @,
  981. mov r2, #0 @,
  982. mov r3, #0 @,
  983. mov ip, #0 @,
  984. mov lr, #0 @,
  985. ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} @
  986. .L138:
  987. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:269: switch (kcb->kprobe_status) {
  988. cmp r3, #4 @ _6,
  989. beq .L196 @,
  990. .L137:
  991. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:288: BUG();
  992. .syntax divided
  993. @ 288 "/git/arm-soc/arch/arm/probes/kprobes/core.c" 1
  994. .long ((0xe7f001f2) & 0xFFFFFFFF)
  995.  
  996.  
  997. @ 0 "" 2
  998. .arm
  999. .syntax unified
  1000. .L135:
  1001. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:293: kcb->kprobe_status = KPROBE_HIT_ACTIVE;
  1002. ldr r6, .L201+4 @ tmp431,
  1003. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:302: if (!p->pre_handler || !p->pre_handler(p, regs)) {
  1004. add r0, r4, #32 @ _138, p,
  1005. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:293: kcb->kprobe_status = KPROBE_HIT_ACTIVE;
  1006. mov r3, #1 @ tmp366,
  1007. str r3, [r6] @ tmp366, kprobe_ctlblk.kprobe_status
  1008. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:302: if (!p->pre_handler || !p->pre_handler(p, regs)) {
  1009. lsr r3, r0, #3 @ tmp367, _138,
  1010. add r3, r3, #1593835520 @ tmp369, tmp367,
  1011. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:206: __this_cpu_write(current_kprobe, p);
  1012. str r4, [r9] @ p, current_kprobe
  1013. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:302: if (!p->pre_handler || !p->pre_handler(p, regs)) {
  1014. ldrsb r2, [r3] @ _142, *_141
  1015. and r3, r0, #7 @ tmp370, _138,
  1016. add r3, r3, #3 @ tmp374, tmp370,
  1017. cmp r3, r2 @ tmp380, _142
  1018. movlt r3, #0 @ tmp380,
  1019. movge r3, #1 @ tmp380,
  1020. cmp r2, #0 @ _142,
  1021. moveq r3, #0 @ tmp380,
  1022. cmp r3, #0 @ tmp380,
  1023. bne .L197 @,
  1024. .L142:
  1025. ldr r3, [r4, #32] @ _7, p_19->pre_handler
  1026. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:302: if (!p->pre_handler || !p->pre_handler(p, regs)) {
  1027. cmp r3, #0 @ _7,
  1028. beq .L149 @,
  1029. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:302: if (!p->pre_handler || !p->pre_handler(p, regs)) {
  1030. mov r1, r5 @, regs
  1031. mov r0, r4 @, p
  1032. blx r3 @ _7
  1033. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:302: if (!p->pre_handler || !p->pre_handler(p, regs)) {
  1034. cmp r0, #0 @ tmp438,
  1035. bne .L150 @,
  1036. .L149:
  1037. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:226: p->ainsn.insn_singlestep(p->opcode, &p->ainsn, regs);
  1038. add r0, r4, #56 @ _149, p,
  1039. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:303: kcb->kprobe_status = KPROBE_HIT_SS;
  1040. mov r3, #2 @ tmp382,
  1041. str r3, [r6] @ tmp382, kprobe_ctlblk.kprobe_status
  1042. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:226: p->ainsn.insn_singlestep(p->opcode, &p->ainsn, regs);
  1043. lsr r3, r0, #3 @ tmp383, _149,
  1044. add r3, r3, #1593835520 @ tmp385, tmp383,
  1045. ldrsb r2, [r3] @ _153, *_152
  1046. and r3, r0, #7 @ tmp386, _149,
  1047. add r3, r3, #3 @ tmp390, tmp386,
  1048. cmp r3, r2 @ tmp396, _153
  1049. movlt r3, #0 @ tmp396,
  1050. movge r3, #1 @ tmp396,
  1051. cmp r2, #0 @ _153,
  1052. moveq r3, #0 @ tmp396,
  1053. cmp r3, #0 @ tmp396,
  1054. bne .L198 @,
  1055. .L144:
  1056. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:226: p->ainsn.insn_singlestep(p->opcode, &p->ainsn, regs);
  1057. add r0, r4, #40 @ _160, p,
  1058. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:226: p->ainsn.insn_singlestep(p->opcode, &p->ainsn, regs);
  1059. ldr r7, [r4, #56] @ _39, p_19->ainsn.insn_singlestep
  1060. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:226: p->ainsn.insn_singlestep(p->opcode, &p->ainsn, regs);
  1061. lsr r3, r0, #3 @ tmp397, _160,
  1062. add r3, r3, #1593835520 @ tmp399, tmp397,
  1063. ldrsb r2, [r3] @ _164, *_163
  1064. and r3, r0, #7 @ tmp400, _160,
  1065. add r3, r3, #3 @ tmp404, tmp400,
  1066. cmp r3, r2 @ tmp410, _164
  1067. movlt r3, #0 @ tmp410,
  1068. movge r3, #1 @ tmp410,
  1069. cmp r2, #0 @ _164,
  1070. moveq r3, #0 @ tmp410,
  1071. cmp r3, #0 @ tmp410,
  1072. bne .L199 @,
  1073. .L145:
  1074. ldr r0, [r4, #40] @, p_19->opcode
  1075. mov r2, r5 @, regs
  1076. add r1, r4, #44 @, p,
  1077. blx r7 @ _39
  1078. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:305: if (p->post_handler) {
  1079. add r0, r4, #36 @ _171, p,
  1080. lsr r3, r0, #3 @ tmp413, _171,
  1081. add r3, r3, #1593835520 @ tmp415, tmp413,
  1082. ldrsb r2, [r3] @ _175, *_174
  1083. and r3, r0, #7 @ tmp416, _171,
  1084. add r3, r3, #3 @ tmp420, tmp416,
  1085. cmp r3, r2 @ tmp426, _175
  1086. movlt r3, #0 @ tmp426,
  1087. movge r3, #1 @ tmp426,
  1088. cmp r2, #0 @ _175,
  1089. moveq r3, #0 @ tmp426,
  1090. cmp r3, #0 @ tmp426,
  1091. bne .L200 @,
  1092. .L146:
  1093. ldr r3, [r4, #36] @ _9, p_19->post_handler
  1094. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:305: if (p->post_handler) {
  1095. cmp r3, #0 @ _9,
  1096. beq .L150 @,
  1097. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:306: kcb->kprobe_status = KPROBE_HIT_SSDONE;
  1098. mov r2, #8 @ tmp428,
  1099. str r2, [r6] @ tmp428, kprobe_ctlblk.kprobe_status
  1100. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:307: p->post_handler(p, regs, 0);
  1101. mov r1, r5 @, regs
  1102. mov r0, r4 @, p
  1103. mov r2, #0 @,
  1104. blx r3 @ _9
  1105. .L150:
  1106. @ /git/arm-soc/include/linux/kprobes.h:378: __this_cpu_write(current_kprobe, NULL);
  1107. mov r3, #0 @ tmp430,
  1108. str r3, [r9] @ tmp430, current_kprobe
  1109. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:320: }
  1110. sub sp, fp, #40 @,,
  1111. mov r0, #0 @,
  1112. mov r1, #0 @,
  1113. mov r2, #0 @,
  1114. mov r3, #0 @,
  1115. mov ip, #0 @,
  1116. mov lr, #0 @,
  1117. ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} @
  1118. .L190:
  1119. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:255: p = get_kprobe((kprobe_opcode_t *)regs->ARM_pc);
  1120. mov r0, r8 @, _54
  1121. bl __asan_report_load4_noabort @
  1122. b .L129 @
  1123. .L192:
  1124. str r3, [fp, #-48] @ _3, %sfp
  1125. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:259: if (!p->ainsn.insn_check_cc(regs->ARM_cpsr)) {
  1126. bl __asan_report_load4_noabort @
  1127. ldr r3, [fp, #-48] @ _3, %sfp
  1128. b .L132 @
  1129. .L191:
  1130. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:259: if (!p->ainsn.insn_check_cc(regs->ARM_cpsr)) {
  1131. bl __asan_report_load4_noabort @
  1132. b .L131 @
  1133. .L193:
  1134. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:219: regs->ARM_pc += 4;
  1135. mov r0, r8 @, _54
  1136. bl __asan_report_load4_noabort @
  1137. b .L134 @
  1138. .L197:
  1139. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:302: if (!p->pre_handler || !p->pre_handler(p, regs)) {
  1140. bl __asan_report_load4_noabort @
  1141. b .L142 @
  1142. .L194:
  1143. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:226: p->ainsn.insn_singlestep(p->opcode, &p->ainsn, regs);
  1144. bl __asan_report_load4_noabort @
  1145. b .L140 @
  1146. .L195:
  1147. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:226: p->ainsn.insn_singlestep(p->opcode, &p->ainsn, regs);
  1148. bl __asan_report_load4_noabort @
  1149. b .L141 @
  1150. .L199:
  1151. bl __asan_report_load4_noabort @
  1152. b .L145 @
  1153. .L198:
  1154. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:226: p->ainsn.insn_singlestep(p->opcode, &p->ainsn, regs);
  1155. bl __asan_report_load4_noabort @
  1156. b .L144 @
  1157. .L200:
  1158. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:305: if (p->post_handler) {
  1159. bl __asan_report_load4_noabort @
  1160. b .L146 @
  1161. .L196:
  1162. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:283: pr_warn("Failed to recover from reentered kprobes.\n");
  1163. ldr r0, .L201+8 @,
  1164. bl _printk @
  1165. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:284: dump_kprobe(p);
  1166. mov r0, r4 @, p
  1167. bl dump_kprobe @
  1168. b .L137 @
  1169. .L202:
  1170. .align 2
  1171. .L201:
  1172. .word current_kprobe
  1173. .word kprobe_ctlblk
  1174. .word .LANCHOR1
  1175. .size kprobe_handler, .-kprobe_handler
  1176. .align 2
  1177. .p2align 6,,63
  1178. .syntax unified
  1179. .arm
  1180. .fpu softvfp
  1181. .type kprobe_trap_handler, %function
  1182. kprobe_trap_handler:
  1183. .LASANPC3677:
  1184. @ args = 0, pretend = 0, frame = 0
  1185. @ frame_needed = 1, uses_anonymous_args = 0
  1186. mov ip, sp @,
  1187. push {r4, r5, fp, ip, lr, pc} @
  1188. sub fp, ip, #4 @,,
  1189. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:323: {
  1190. mov r4, r0 @ regs, tmp132
  1191. @ /git/arm-soc/arch/arm/include/asm/irqflags.h:29: asm volatile(
  1192. .syntax divided
  1193. @ 29 "/git/arm-soc/arch/arm/include/asm/irqflags.h" 1
  1194. mrs r5, cpsr @ arch_local_irq_save @ flags
  1195. cpsid i
  1196. @ 0 "" 2
  1197. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:325: local_irq_save(flags);
  1198. .arm
  1199. .syntax unified
  1200. tst r5, #128 @ flags,
  1201. beq .L208 @,
  1202. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:326: kprobe_handler(regs);
  1203. bl kprobe_handler @
  1204. .L206:
  1205. @ /git/arm-soc/arch/arm/include/asm/irqflags.h:159: asm volatile(
  1206. .syntax divided
  1207. @ 159 "/git/arm-soc/arch/arm/include/asm/irqflags.h" 1
  1208. mrs r2, cpsr @ local_save_flags @ flags
  1209. @ 0 "" 2
  1210. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:327: local_irq_restore(flags);
  1211. .arm
  1212. .syntax unified
  1213. mov r3, #0 @,
  1214. ands r4, r2, #128 @ _8, flags,
  1215. moveq r1, #1 @,
  1216. movne r1, r3 @,
  1217. ldr r0, .L210 @,
  1218. mov r2, r3 @,
  1219. bl ftrace_likely_update @
  1220. cmp r4, #0 @ _8,
  1221. beq .L209 @,
  1222. .L205:
  1223. @ /git/arm-soc/arch/arm/include/asm/irqflags.h:171: asm volatile(
  1224. .syntax divided
  1225. @ 171 "/git/arm-soc/arch/arm/include/asm/irqflags.h" 1
  1226. msr cpsr_c, r5 @ local_irq_restore @ flags
  1227. @ 0 "" 2
  1228. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:329: }
  1229. .arm
  1230. .syntax unified
  1231. mov r0, #0 @,
  1232. mov r1, #0 @,
  1233. mov r2, #0 @,
  1234. mov r3, #0 @,
  1235. mov ip, #0 @,
  1236. mov lr, #0 @,
  1237. ldmfd sp, {r4, r5, fp, sp, pc} @
  1238. .L208:
  1239. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:325: local_irq_save(flags);
  1240. bl trace_hardirqs_off @
  1241. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:326: kprobe_handler(regs);
  1242. mov r0, r4 @, regs
  1243. bl kprobe_handler @
  1244. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:327: local_irq_restore(flags);
  1245. bl trace_hardirqs_on @
  1246. b .L206 @
  1247. .L209:
  1248. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:327: local_irq_restore(flags);
  1249. bl warn_bogus_irq_restore @
  1250. b .L205 @
  1251. .L211:
  1252. .align 2
  1253. .L210:
  1254. .word .LANCHOR0+24
  1255. .size kprobe_trap_handler, .-kprobe_trap_handler
  1256. .align 2
  1257. .p2align 6,,63
  1258. .global kprobe_fault_handler
  1259. .syntax unified
  1260. .arm
  1261. .fpu softvfp
  1262. .type kprobe_fault_handler, %function
  1263. kprobe_fault_handler:
  1264. .LASANPC3678:
  1265. @ args = 0, pretend = 0, frame = 0
  1266. @ frame_needed = 1, uses_anonymous_args = 0
  1267. mov ip, sp @,
  1268. push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc} @
  1269. sub fp, ip, #4 @,,
  1270. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:336: switch (kcb->kprobe_status) {
  1271. ldr r5, .L226 @ tmp189,
  1272. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:332: {
  1273. mov r4, r0 @ regs, tmp191
  1274. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:336: switch (kcb->kprobe_status) {
  1275. ldr r6, [r5] @ _1, kprobe_ctlblk.kprobe_status
  1276. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:336: switch (kcb->kprobe_status) {
  1277. sub r3, r6, #2 @ tmp149, _1,
  1278. bics r3, r3, #2 @ tmp193, tmp149,
  1279. beq .L223 @,
  1280. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:356: }
  1281. mov r0, #0 @,
  1282. mov r2, #0 @,
  1283. mov r3, #0 @,
  1284. mov ip, #0 @,
  1285. ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc} @
  1286. .L223:
  1287. @ /git/arm-soc/include/linux/kprobes.h:373: return __this_cpu_read(current_kprobe);
  1288. ldr r7, .L226+4 @ tmp190,
  1289. ldr r8, [r7] @ pscr_ret__, current_kprobe
  1290. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:346: regs->ARM_pc = (long)cur->addr;
  1291. add r0, r8, #20 @ _20, pscr_ret__,
  1292. and r3, r0, #7 @ tmp155, _20,
  1293. lsr r2, r0, #3 @ tmp152, _20,
  1294. add r2, r2, #1593835520 @ tmp154, tmp152,
  1295. add r3, r3, #3 @ tmp159, tmp155,
  1296. ldrsb r2, [r2] @ _24, *_23
  1297. cmp r3, r2 @ tmp165, _24
  1298. movlt r3, #0 @ tmp165,
  1299. movge r3, #1 @ tmp165,
  1300. cmp r2, #0 @ _24,
  1301. moveq r3, #0 @ tmp165,
  1302. cmp r3, #0 @ tmp165,
  1303. bne .L224 @,
  1304. .L214:
  1305. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:346: regs->ARM_pc = (long)cur->addr;
  1306. add r0, r4, #60 @ _31, regs,
  1307. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:346: regs->ARM_pc = (long)cur->addr;
  1308. ldr r8, [r8, #20] @ _3, pscr_ret___7->addr
  1309. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:346: regs->ARM_pc = (long)cur->addr;
  1310. lsr r3, r0, #3 @ tmp166, _31,
  1311. add r3, r3, #1593835520 @ tmp168, tmp166,
  1312. ldrsb r2, [r3] @ _35, *_34
  1313. and r3, r0, #7 @ tmp169, _31,
  1314. add r3, r3, #3 @ tmp173, tmp169,
  1315. cmp r3, r2 @ tmp179, _35
  1316. movlt r3, #0 @ tmp179,
  1317. movge r3, #1 @ tmp179,
  1318. cmp r2, #0 @ _35,
  1319. moveq r3, #0 @ tmp179,
  1320. cmp r3, #0 @ tmp179,
  1321. bne .L225 @,
  1322. .L215:
  1323. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:347: if (kcb->kprobe_status == KPROBE_REENTER) {
  1324. cmp r6, #4 @ _1,
  1325. @ /git/arm-soc/include/linux/kprobes.h:378: __this_cpu_write(current_kprobe, NULL);
  1326. movne r3, #0 @ tmp187,
  1327. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:201: kcb->kprobe_status = kcb->prev_kprobe.status;
  1328. ldrdeq r2, [r5, #4] @, tmp189,
  1329. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:356: }
  1330. mov r0, #0 @,
  1331. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:346: regs->ARM_pc = (long)cur->addr;
  1332. str r8, [r4, #60] @ _3, regs_8(D)->uregs[15]
  1333. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:200: __this_cpu_write(current_kprobe, kcb->prev_kprobe.kp);
  1334. streq r2, [r7] @ kprobe_ctlblk.prev_kprobe.kp, current_kprobe
  1335. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:201: kcb->kprobe_status = kcb->prev_kprobe.status;
  1336. streq r3, [r5] @ kprobe_ctlblk.prev_kprobe.status, kprobe_ctlblk.kprobe_status
  1337. @ /git/arm-soc/include/linux/kprobes.h:378: __this_cpu_write(current_kprobe, NULL);
  1338. strne r3, [r7] @ tmp187, current_kprobe
  1339. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:356: }
  1340. mov r2, #0 @,
  1341. mov r3, #0 @,
  1342. mov ip, #0 @,
  1343. ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc} @
  1344. .L225:
  1345. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:346: regs->ARM_pc = (long)cur->addr;
  1346. bl __asan_report_store4_noabort @
  1347. b .L215 @
  1348. .L224:
  1349. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:346: regs->ARM_pc = (long)cur->addr;
  1350. bl __asan_report_load4_noabort @
  1351. b .L214 @
  1352. .L227:
  1353. .align 2
  1354. .L226:
  1355. .word kprobe_ctlblk
  1356. .word current_kprobe
  1357. .size kprobe_fault_handler, .-kprobe_fault_handler
  1358. .align 2
  1359. .p2align 6,,63
  1360. .global kprobe_exceptions_notify
  1361. .syntax unified
  1362. .arm
  1363. .fpu softvfp
  1364. .type kprobe_exceptions_notify, %function
  1365. kprobe_exceptions_notify:
  1366. .LASANPC3679:
  1367. @ args = 0, pretend = 0, frame = 0
  1368. @ frame_needed = 1, uses_anonymous_args = 0
  1369. mov ip, sp @,
  1370. push {fp, ip, lr, pc} @
  1371. sub fp, ip, #4 @,,
  1372. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:366: }
  1373. mov r0, #0 @,
  1374. mov ip, #0 @,
  1375. ldmfd sp, {fp, sp, pc} @
  1376. .size kprobe_exceptions_notify, .-kprobe_exceptions_notify
  1377. .align 2
  1378. .p2align 6,,63
  1379. .syntax unified
  1380. .arm
  1381. .fpu softvfp
  1382. .type trampoline_handler, %function
  1383. trampoline_handler:
  1384. .LASANPC3681:
  1385. @ args = 0, pretend = 0, frame = 0
  1386. @ frame_needed = 1, uses_anonymous_args = 0
  1387. mov ip, sp @,
  1388. push {r4, r5, fp, ip, lr, pc} @
  1389. sub fp, ip, #4 @,,
  1390. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:416: {
  1391. mov r4, r0 @ regs, tmp145
  1392. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:417: return (void *)kretprobe_trampoline_handler(regs, (void *)regs->ARM_fp);
  1393. add r0, r0, #44 @ _12, regs,
  1394. and r3, r0, #7 @ tmp133, _12,
  1395. lsr r2, r0, #3 @ tmp130, _12,
  1396. add r2, r2, #1593835520 @ tmp132, tmp130,
  1397. add r3, r3, #3 @ tmp137, tmp133,
  1398. ldrsb r2, [r2] @ _16, *_15
  1399. cmp r3, r2 @ tmp143, _16
  1400. movlt r3, #0 @ tmp143,
  1401. movge r3, #1 @ tmp143,
  1402. cmp r2, #0 @ _16,
  1403. moveq r3, #0 @ tmp143,
  1404. cmp r3, #0 @ tmp143,
  1405. bne .L234 @,
  1406. .L230:
  1407. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:417: return (void *)kretprobe_trampoline_handler(regs, (void *)regs->ARM_fp);
  1408. ldr r5, [r4, #44] @ _2, regs_4(D)->uregs[11]
  1409. @ /git/arm-soc/include/linux/kprobes.h:220: kprobe_busy_begin();
  1410. bl kprobe_busy_begin @
  1411. @ /git/arm-soc/include/linux/kprobes.h:221: ret = __kretprobe_trampoline_handler(regs, frame_pointer);
  1412. mov r1, r5 @, _2
  1413. mov r0, r4 @, regs
  1414. bl __kretprobe_trampoline_handler @
  1415. mov r4, r0 @ ret, tmp146
  1416. @ /git/arm-soc/include/linux/kprobes.h:222: kprobe_busy_end();
  1417. bl kprobe_busy_end @
  1418. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:418: }
  1419. mov r0, r4 @, ret
  1420. mov r1, #0 @,
  1421. mov r2, #0 @,
  1422. mov r3, #0 @,
  1423. mov ip, #0 @,
  1424. mov lr, #0 @,
  1425. ldmfd sp, {r4, r5, fp, sp, pc} @
  1426. .L234:
  1427. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:417: return (void *)kretprobe_trampoline_handler(regs, (void *)regs->ARM_fp);
  1428. bl __asan_report_load4_noabort @
  1429. b .L230 @
  1430. .size trampoline_handler, .-trampoline_handler
  1431. .align 2
  1432. .p2align 6,,63
  1433. .global arch_prepare_kretprobe
  1434. .syntax unified
  1435. .arm
  1436. .fpu softvfp
  1437. .type arch_prepare_kretprobe, %function
  1438. arch_prepare_kretprobe:
  1439. .LASANPC3682:
  1440. @ args = 0, pretend = 0, frame = 8
  1441. @ frame_needed = 1, uses_anonymous_args = 0
  1442. mov ip, sp @,
  1443. push {r4, r5, fp, ip, lr, pc} @
  1444. sub fp, ip, #4 @,,
  1445. sub sp, sp, #8 @,,
  1446. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:423: ri->ret_addr = (kprobe_opcode_t *)regs->ARM_lr;
  1447. add ip, r1, #56 @ _20, regs,
  1448. and r3, ip, #7 @ tmp171, _20,
  1449. lsr r2, ip, #3 @ tmp168, _20,
  1450. add r2, r2, #1593835520 @ tmp170, tmp168,
  1451. add r3, r3, #3 @ tmp175, tmp171,
  1452. ldrsb r2, [r2] @ _24, *_23
  1453. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:422: {
  1454. mov r4, r0 @ ri, tmp225
  1455. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:423: ri->ret_addr = (kprobe_opcode_t *)regs->ARM_lr;
  1456. cmp r3, r2 @ tmp181, _24
  1457. movlt r3, #0 @ tmp181,
  1458. movge r3, #1 @ tmp181,
  1459. cmp r2, #0 @ _24,
  1460. moveq r3, #0 @ tmp181,
  1461. cmp r3, #0 @ tmp181,
  1462. bne .L252 @,
  1463. .L236:
  1464. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:423: ri->ret_addr = (kprobe_opcode_t *)regs->ARM_lr;
  1465. add r0, r4, #16 @ _31, ri,
  1466. and r3, r0, #7 @ tmp185, _31,
  1467. lsr r2, r0, #3 @ tmp182, _31,
  1468. add r2, r2, #1593835520 @ tmp184, tmp182,
  1469. add r3, r3, #3 @ tmp189, tmp185,
  1470. ldrsb r2, [r2] @ _35, *_34
  1471. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:423: ri->ret_addr = (kprobe_opcode_t *)regs->ARM_lr;
  1472. ldr r5, [r1, #56] @ _2, regs_7(D)->uregs[14]
  1473. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:423: ri->ret_addr = (kprobe_opcode_t *)regs->ARM_lr;
  1474. cmp r3, r2 @ tmp195, _35
  1475. movlt r3, #0 @ tmp195,
  1476. movge r3, #1 @ tmp195,
  1477. cmp r2, #0 @ _35,
  1478. moveq r3, #0 @ tmp195,
  1479. cmp r3, #0 @ tmp195,
  1480. bne .L253 @,
  1481. .L237:
  1482. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:424: ri->fp = (void *)regs->ARM_fp;
  1483. add r0, r1, #44 @ _42, regs,
  1484. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:423: ri->ret_addr = (kprobe_opcode_t *)regs->ARM_lr;
  1485. str r5, [r4, #16] @ _2, ri_8(D)->ret_addr
  1486. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:424: ri->fp = (void *)regs->ARM_fp;
  1487. lsr r2, r0, #3 @ tmp196, _42,
  1488. add r2, r2, #1593835520 @ tmp198, tmp196,
  1489. and r3, r0, #7 @ tmp199, _42,
  1490. ldrsb r2, [r2] @ _46, *_45
  1491. add r3, r3, #3 @ tmp203, tmp199,
  1492. cmp r3, r2 @ tmp209, _46
  1493. movlt r3, #0 @ tmp209,
  1494. movge r3, #1 @ tmp209,
  1495. cmp r2, #0 @ _46,
  1496. moveq r3, #0 @ tmp209,
  1497. cmp r3, #0 @ tmp209,
  1498. bne .L254 @,
  1499. .L238:
  1500. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:424: ri->fp = (void *)regs->ARM_fp;
  1501. add r0, r4, #20 @ _53, ri,
  1502. and r3, r0, #7 @ tmp213, _53,
  1503. lsr r2, r0, #3 @ tmp210, _53,
  1504. add r2, r2, #1593835520 @ tmp212, tmp210,
  1505. add r3, r3, #3 @ tmp217, tmp213,
  1506. ldrsb r2, [r2] @ _57, *_56
  1507. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:424: ri->fp = (void *)regs->ARM_fp;
  1508. ldr r5, [r1, #44] @ _4, regs_7(D)->uregs[11]
  1509. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:424: ri->fp = (void *)regs->ARM_fp;
  1510. cmp r3, r2 @ tmp223, _57
  1511. movlt r3, #0 @ tmp223,
  1512. movge r3, #1 @ tmp223,
  1513. cmp r2, #0 @ _57,
  1514. moveq r3, #0 @ tmp223,
  1515. cmp r3, #0 @ tmp223,
  1516. bne .L255 @,
  1517. .L239:
  1518. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:427: regs->ARM_lr = (unsigned long)&__kretprobe_trampoline;
  1519. ldr r3, .L256 @ tmp224,
  1520. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:424: ri->fp = (void *)regs->ARM_fp;
  1521. str r5, [r4, #20] @ _4, ri_8(D)->fp
  1522. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:427: regs->ARM_lr = (unsigned long)&__kretprobe_trampoline;
  1523. str r3, [r1, #56] @ tmp224, regs_7(D)->uregs[14]
  1524. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:428: }
  1525. sub sp, fp, #20 @,,
  1526. mov r0, #0 @,
  1527. mov r1, #0 @,
  1528. mov r2, #0 @,
  1529. mov r3, #0 @,
  1530. mov ip, #0 @,
  1531. ldmfd sp, {r4, r5, fp, sp, pc} @
  1532. .L252:
  1533. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:423: ri->ret_addr = (kprobe_opcode_t *)regs->ARM_lr;
  1534. mov r0, ip @, _20
  1535. str r1, [fp, #-24] @ regs, %sfp
  1536. bl __asan_report_load4_noabort @
  1537. ldr r1, [fp, #-24] @ regs, %sfp
  1538. b .L236 @
  1539. .L255:
  1540. str r1, [fp, #-24] @ regs, %sfp
  1541. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:424: ri->fp = (void *)regs->ARM_fp;
  1542. bl __asan_report_store4_noabort @
  1543. ldr r1, [fp, #-24] @ regs, %sfp
  1544. b .L239 @
  1545. .L254:
  1546. str r1, [fp, #-24] @ regs, %sfp
  1547. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:424: ri->fp = (void *)regs->ARM_fp;
  1548. bl __asan_report_load4_noabort @
  1549. ldr r1, [fp, #-24] @ regs, %sfp
  1550. b .L238 @
  1551. .L253:
  1552. str r1, [fp, #-24] @ regs, %sfp
  1553. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:423: ri->ret_addr = (kprobe_opcode_t *)regs->ARM_lr;
  1554. bl __asan_report_store4_noabort @
  1555. ldr r1, [fp, #-24] @ regs, %sfp
  1556. b .L237 @
  1557. .L257:
  1558. .align 2
  1559. .L256:
  1560. .word __kretprobe_trampoline
  1561. .size arch_prepare_kretprobe, .-arch_prepare_kretprobe
  1562. .align 2
  1563. .p2align 6,,63
  1564. .global arch_trampoline_kprobe
  1565. .syntax unified
  1566. .arm
  1567. .fpu softvfp
  1568. .type arch_trampoline_kprobe, %function
  1569. arch_trampoline_kprobe:
  1570. .LASANPC3683:
  1571. @ args = 0, pretend = 0, frame = 0
  1572. @ frame_needed = 1, uses_anonymous_args = 0
  1573. mov ip, sp @,
  1574. push {fp, ip, lr, pc} @
  1575. sub fp, ip, #4 @,,
  1576. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:433: }
  1577. mov r0, #0 @,
  1578. mov ip, #0 @,
  1579. ldmfd sp, {fp, sp, pc} @
  1580. .size arch_trampoline_kprobe, .-arch_trampoline_kprobe
  1581. .section .init.text,"ax",%progbits
  1582. .align 2
  1583. .global arch_init_kprobes
  1584. .syntax unified
  1585. .arm
  1586. .fpu softvfp
  1587. .type arch_init_kprobes, %function
  1588. arch_init_kprobes:
  1589. .LASANPC3684:
  1590. @ args = 0, pretend = 0, frame = 0
  1591. @ frame_needed = 1, uses_anonymous_args = 0
  1592. mov ip, sp @,
  1593. push {fp, ip, lr, pc} @
  1594. sub fp, ip, #4 @,,
  1595. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:467: arm_probes_decode_init();
  1596. bl arm_probes_decode_init @
  1597. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:472: register_undef_hook(&kprobes_arm_break_hook);
  1598. ldr r0, .L260 @,
  1599. bl register_undef_hook @
  1600. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:475: }
  1601. mov r0, #0 @,
  1602. mov ip, #0 @,
  1603. mov lr, #0 @,
  1604. ldmfd sp, {fp, sp, pc} @
  1605. .L261:
  1606. .align 2
  1607. .L260:
  1608. .word .LANCHOR2
  1609. .size arch_init_kprobes, .-arch_init_kprobes
  1610. .text
  1611. .align 2
  1612. .p2align 6,,63
  1613. .global arch_within_kprobe_blacklist
  1614. .syntax unified
  1615. .arm
  1616. .fpu softvfp
  1617. .type arch_within_kprobe_blacklist, %function
  1618. arch_within_kprobe_blacklist:
  1619. .LASANPC3685:
  1620. @ args = 0, pretend = 0, frame = 0
  1621. @ frame_needed = 1, uses_anonymous_args = 0
  1622. mov ip, sp @,
  1623. push {fp, ip, lr, pc} @
  1624. sub fp, ip, #4 @,,
  1625. @ /git/arm-soc/arch/arm/include/asm/traps.h:27: return ptr >= (unsigned long)&__irqentry_text_start &&
  1626. ldr r3, .L273 @ tmp121,
  1627. cmp r0, r3 @ addr, tmp121
  1628. bcc .L263 @,
  1629. ldr r3, .L273+4 @ tmp122,
  1630. cmp r0, r3 @ addr, tmp122
  1631. bcs .L263 @,
  1632. .L271:
  1633. mov r0, #1 @ <retval>,
  1634. mov r2, #0 @,
  1635. mov r3, #0 @,
  1636. mov ip, #0 @,
  1637. ldmfd sp, {fp, sp, pc} @
  1638. .L263:
  1639. @ /git/arm-soc/include/asm-generic/sections.h:81: return virt >= begin && virt + size <= end;
  1640. ldr r3, .L273+8 @ tmp123,
  1641. cmp r0, r3 @ addr, tmp123
  1642. bcc .L265 @,
  1643. ldr r3, .L273+12 @ tmp125,
  1644. @ /git/arm-soc/include/asm-generic/sections.h:81: return virt >= begin && virt + size <= end;
  1645. add r2, r0, #1 @ tmp124, addr,
  1646. @ /git/arm-soc/include/asm-generic/sections.h:81: return virt >= begin && virt + size <= end;
  1647. cmp r2, r3 @ tmp124, tmp125
  1648. bls .L271 @,
  1649. .L265:
  1650. ldr r3, .L273+16 @ tmp134,
  1651. cmp r0, r3 @ addr, tmp134
  1652. bcs .L268 @,
  1653. .L266:
  1654. ldr r3, .L273+20 @ tmp133,
  1655. cmp r0, r3 @ addr, tmp133
  1656. bcs .L267 @,
  1657. mov r0, #0 @ <retval>,
  1658. @ /git/arm-soc/arch/arm/probes/kprobes/core.c:485: }
  1659. mov r2, #0 @,
  1660. mov r3, #0 @,
  1661. mov ip, #0 @,
  1662. ldmfd sp, {fp, sp, pc} @
  1663. .L268:
  1664. @ /git/arm-soc/include/asm-generic/sections.h:81: return virt >= begin && virt + size <= end;
  1665. ldr r3, .L273+24 @ tmp127,
  1666. @ /git/arm-soc/include/asm-generic/sections.h:81: return virt >= begin && virt + size <= end;
  1667. add r2, r0, #1 @ tmp126, addr,
  1668. @ /git/arm-soc/include/asm-generic/sections.h:81: return virt >= begin && virt + size <= end;
  1669. cmp r2, r3 @ tmp126, tmp127
  1670. bls .L271 @,
  1671. b .L266 @
  1672. .L267:
  1673. ldr r3, .L273+28 @ tmp130,
  1674. @ /git/arm-soc/include/asm-generic/sections.h:81: return virt >= begin && virt + size <= end;
  1675. add r0, r0, #1 @ tmp128, addr,
  1676. @ /git/arm-soc/include/asm-generic/sections.h:81: return virt >= begin && virt + size <= end;
  1677. cmp r0, r3 @ tmp128, tmp130
  1678. movhi r0, #0 @ <retval>,
  1679. movls r0, #1 @ <retval>,
  1680. mov r2, #0 @,
  1681. mov r3, #0 @,
  1682. mov ip, #0 @,
  1683. ldmfd sp, {fp, sp, pc} @
  1684. .L274:
  1685. .align 2
  1686. .L273:
  1687. .word __irqentry_text_start
  1688. .word __irqentry_text_end
  1689. .word __entry_text_start
  1690. .word __entry_text_end
  1691. .word __idmap_text_start
  1692. .word __kprobes_text_start
  1693. .word __idmap_text_end
  1694. .word __kprobes_text_end
  1695. .size arch_within_kprobe_blacklist, .-arch_within_kprobe_blacklist
  1696. .global __pcpu_unique_kprobe_ctlblk
  1697. .global __pcpu_unique_current_kprobe
  1698. .weak kprobe_ctlblk
  1699. .global __pcpu_scope_kprobe_ctlblk
  1700. .weak current_kprobe
  1701. .global __pcpu_scope_current_kprobe
  1702. .section .rodata.str1.4
  1703. .align 2
  1704. .LC5:
  1705. .ascii "/git/arm-soc/arch/arm/probes/kprobes/core.c\000"
  1706. .align 2
  1707. .LC6:
  1708. .ascii "/git/arm-soc/include/linux/stop_machine.h\000"
  1709. .align 2
  1710. .LC7:
  1711. .ascii "__func__\000"
  1712. .align 2
  1713. .LC8:
  1714. .ascii "kprobes_arm_break_hook\000"
  1715. .align 2
  1716. .LC9:
  1717. .ascii "*.LC3\000"
  1718. .align 2
  1719. .LC10:
  1720. .ascii "*.LC2\000"
  1721. .align 2
  1722. .LC11:
  1723. .ascii "*.LC4\000"
  1724. .section .text.exit,"ax",%progbits
  1725. .align 2
  1726. .p2align 6,,63
  1727. .syntax unified
  1728. .arm
  1729. .fpu softvfp
  1730. .type _sub_D_65535_0, %function
  1731. _sub_D_65535_0:
  1732. @ args = 0, pretend = 0, frame = 0
  1733. @ frame_needed = 1, uses_anonymous_args = 0
  1734. mov ip, sp @,
  1735. push {fp, ip, lr, pc} @
  1736. sub fp, ip, #4 @,,
  1737. ldr r0, .L276 @,
  1738. mov r1, #6 @,
  1739. bl __asan_unregister_globals @
  1740. mov r0, #0 @,
  1741. mov r1, #0 @,
  1742. mov ip, #0 @,
  1743. mov lr, #0 @,
  1744. ldmfd sp, {fp, sp, pc} @
  1745. .L277:
  1746. .align 2
  1747. .L276:
  1748. .word .LANCHOR2+104
  1749. .size _sub_D_65535_0, .-_sub_D_65535_0
  1750. .section .fini_array,"aw",%fini_array
  1751. .align 2
  1752. .word _sub_D_65535_0(target1)
  1753. .section .text.startup,"ax",%progbits
  1754. .align 2
  1755. .p2align 6,,63
  1756. .syntax unified
  1757. .arm
  1758. .fpu softvfp
  1759. .type _sub_I_65535_1, %function
  1760. _sub_I_65535_1:
  1761. @ args = 0, pretend = 0, frame = 0
  1762. @ frame_needed = 1, uses_anonymous_args = 0
  1763. mov ip, sp @,
  1764. push {fp, ip, lr, pc} @
  1765. sub fp, ip, #4 @,,
  1766. ldr r0, .L279 @,
  1767. mov r1, #6 @,
  1768. bl __asan_register_globals @
  1769. mov r0, #0 @,
  1770. mov r1, #0 @,
  1771. mov ip, #0 @,
  1772. mov lr, #0 @,
  1773. ldmfd sp, {fp, sp, pc} @
  1774. .L280:
  1775. .align 2
  1776. .L279:
  1777. .word .LANCHOR2+104
  1778. .size _sub_I_65535_1, .-_sub_I_65535_1
  1779. .section .init_array,"aw",%init_array
  1780. .align 2
  1781. .word _sub_I_65535_1(target1)
  1782. .section .rodata
  1783. .align 5
  1784. .set .LANCHOR1,. + 0
  1785. .LC2:
  1786. .ascii "\0014kprobes: Failed to recover from reentered kpro"
  1787. .ascii "bes.\012\000"
  1788. .space 42
  1789. .type __func__.0, %object
  1790. .size __func__.0, 20
  1791. __func__.0:
  1792. .ascii "kprobe_trap_handler\000"
  1793. .space 44
  1794. .type __func__.1, %object
  1795. .size __func__.1, 24
  1796. __func__.1:
  1797. .ascii "stop_machine_cpuslocked\000"
  1798. .space 40
  1799. .LC3:
  1800. .ascii "arch/arm/probes/kprobes/core.c\000"
  1801. .space 33
  1802. .LC4:
  1803. .ascii "include/linux/stop_machine.h\000"
  1804. .space 35
  1805. .data
  1806. .align 5
  1807. .set .LANCHOR2,. + 0
  1808. .type kprobes_arm_break_hook, %object
  1809. .size kprobes_arm_break_hook, 28
  1810. kprobes_arm_break_hook:
  1811. @ instr_mask:
  1812. .space 8
  1813. .word 268435455
  1814. @ instr_val:
  1815. .word 133169656
  1816. @ cpsr_mask:
  1817. .word 31
  1818. @ cpsr_val:
  1819. .word 19
  1820. @ fn:
  1821. .word kprobe_trap_handler
  1822. .space 36
  1823. .type .LASANLOC1, %object
  1824. .size .LASANLOC1, 12
  1825. .LASANLOC1:
  1826. @ __filename:
  1827. .word .LC5
  1828. @ __line:
  1829. .word 327
  1830. @ __column:
  1831. .word 2
  1832. .type .LASANLOC2, %object
  1833. .size .LASANLOC2, 12
  1834. .LASANLOC2:
  1835. @ __filename:
  1836. .word .LC6
  1837. @ __line:
  1838. .word 138
  1839. @ __column:
  1840. .word 2
  1841. .type .LASANLOC3, %object
  1842. .size .LASANLOC3, 12
  1843. .LASANLOC3:
  1844. @ __filename:
  1845. .word .LC5
  1846. @ __line:
  1847. .word 455
  1848. @ __column:
  1849. .word 26
  1850. .space 4
  1851. .type .LASAN0, %object
  1852. .size .LASAN0, 192
  1853. .LASAN0:
  1854. @ __beg:
  1855. .word __func__.0
  1856. @ __size:
  1857. .word 20
  1858. @ __size_with_redzone:
  1859. .word 64
  1860. @ __name:
  1861. .word .LC7
  1862. @ __module_name:
  1863. .word .LC5
  1864. @ __has_dynamic_init:
  1865. .word 0
  1866. @ __location:
  1867. .word .LASANLOC1
  1868. @ __odr_indicator:
  1869. .word 0
  1870. @ __beg:
  1871. .word __func__.1
  1872. @ __size:
  1873. .word 24
  1874. @ __size_with_redzone:
  1875. .word 64
  1876. @ __name:
  1877. .word .LC7
  1878. @ __module_name:
  1879. .word .LC5
  1880. @ __has_dynamic_init:
  1881. .word 0
  1882. @ __location:
  1883. .word .LASANLOC2
  1884. @ __odr_indicator:
  1885. .word 0
  1886. @ __beg:
  1887. .word kprobes_arm_break_hook
  1888. @ __size:
  1889. .word 28
  1890. @ __size_with_redzone:
  1891. .word 64
  1892. @ __name:
  1893. .word .LC8
  1894. @ __module_name:
  1895. .word .LC5
  1896. @ __has_dynamic_init:
  1897. .word 0
  1898. @ __location:
  1899. .word .LASANLOC3
  1900. @ __odr_indicator:
  1901. .word 0
  1902. @ __beg:
  1903. .word .LC3
  1904. @ __size:
  1905. .word 31
  1906. @ __size_with_redzone:
  1907. .word 64
  1908. @ __name:
  1909. .word .LC9
  1910. @ __module_name:
  1911. .word .LC5
  1912. @ __has_dynamic_init:
  1913. .word 0
  1914. @ __location:
  1915. .word 0
  1916. @ __odr_indicator:
  1917. .word 0
  1918. @ __beg:
  1919. .word .LC2
  1920. @ __size:
  1921. .word 54
  1922. @ __size_with_redzone:
  1923. .word 96
  1924. @ __name:
  1925. .word .LC10
  1926. @ __module_name:
  1927. .word .LC5
  1928. @ __has_dynamic_init:
  1929. .word 0
  1930. @ __location:
  1931. .word 0
  1932. @ __odr_indicator:
  1933. .word 0
  1934. @ __beg:
  1935. .word .LC4
  1936. @ __size:
  1937. .word 29
  1938. @ __size_with_redzone:
  1939. .word 64
  1940. @ __name:
  1941. .word .LC11
  1942. @ __module_name:
  1943. .word .LC5
  1944. @ __has_dynamic_init:
  1945. .word 0
  1946. @ __location:
  1947. .word 0
  1948. @ __odr_indicator:
  1949. .word 0
  1950. .space 32
  1951. .section .data,"aw"
  1952. .align 2
  1953. .type kprobe_ctlblk, %object
  1954. .size kprobe_ctlblk, 12
  1955. kprobe_ctlblk:
  1956. .space 12
  1957. .type current_kprobe, %object
  1958. .size current_kprobe, 4
  1959. current_kprobe:
  1960. .space 4
  1961. .section .discard,"aw"
  1962. .type __pcpu_unique_kprobe_ctlblk, %object
  1963. .size __pcpu_unique_kprobe_ctlblk, 1
  1964. __pcpu_unique_kprobe_ctlblk:
  1965. .space 1
  1966. .type __pcpu_unique_current_kprobe, %object
  1967. .size __pcpu_unique_current_kprobe, 1
  1968. __pcpu_unique_current_kprobe:
  1969. .space 1
  1970. .type __pcpu_scope_kprobe_ctlblk, %object
  1971. .size __pcpu_scope_kprobe_ctlblk, 1
  1972. __pcpu_scope_kprobe_ctlblk:
  1973. .space 1
  1974. .type __pcpu_scope_current_kprobe, %object
  1975. .size __pcpu_scope_current_kprobe, 1
  1976. __pcpu_scope_current_kprobe:
  1977. .space 1
  1978. .section _ftrace_annotated_branch,"aw"
  1979. .align 2
  1980. .set .LANCHOR0,. + 0
  1981. .type ______f.3, %object
  1982. .size ______f.3, 24
  1983. ______f.3:
  1984. @ data:
  1985. @ func:
  1986. .word __func__.1
  1987. @ file:
  1988. .word .LC4
  1989. @ line:
  1990. .word 138
  1991. .space 8
  1992. .space 4
  1993. .type ______f.2, %object
  1994. .size ______f.2, 24
  1995. ______f.2:
  1996. @ data:
  1997. @ func:
  1998. .word __func__.0
  1999. @ file:
  2000. .word .LC3
  2001. @ line:
  2002. .word 327
  2003. .space 8
  2004. .space 4
  2005. .ident "GCC: (GNU) 11.1.0"
  2006. .section .note.GNU-stack,"",%progbits
  2007.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement