Advertisement
Guest User

Untitled

a guest
Dec 16th, 2022
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.14 KB | None | 0 0
  1. .p2align 4, 0x90 # -- Begin function csiphy_lanes_enable
  2. .type csiphy_lanes_enable,@function
  3. csiphy_lanes_enable: # @csiphy_lanes_enable
  4. # %bb.0:
  5. endbr64
  6. callq __fentry__
  7. pushq %rbp
  8. pushq %r15
  9. pushq %r14
  10. pushq %r13
  11. pushq %r12
  12. pushq %rbx
  13. subq $56, %rsp
  14. movq %rdx, %r13
  15. movq %rsi, %rbx
  16. movq %rdi, %r14
  17. leaq 8(%rsi), %r15
  18. movq %r15, %rdi
  19. callq __tsan_read8@PLT
  20. movq 8(%rbx), %r12
  21. movq %r14, %rdi
  22. callq __tsan_read8@PLT
  23. movq (%r14), %rbx
  24. movq %rbx, %rdi
  25. callq __tsan_read4@PLT
  26. movl (%rbx), %eax
  27. movl %eax, 20(%rsp) # 4-byte Spill
  28. testq %r13, %r13
  29. jle .LBB3_1
  30. # %bb.2:
  31. leaq 548(%r14), %rdi
  32. callq __tsan_read4@PLT
  33. movl 548(%r14), %edi
  34. movl %r13d, %esi
  35. movabsq $1000000000000, %rcx # imm = 0xE8D4A51000
  36. movq %rcx, %rax
  37. xorl %edx, %edx
  38. divq %rsi
  39. shrl %eax
  40. leal (%rax,%rax,2), %eax
  41. leal (%rax,%rax), %esi
  42. addl $85000, %esi # imm = 0x14C08
  43. movq %rcx, %rax
  44. xorl %edx, %edx
  45. divq %rdi
  46. movq %rax, %rcx
  47. movl %esi, %eax
  48. xorl %edx, %edx
  49. divl %ecx
  50. addl $250, %eax
  51. movzbl %al, %eax
  52. movl %eax, 4(%rsp) # 4-byte Spill
  53. jmp .LBB3_3
  54. .LBB3_1:
  55. movl $0, 4(%rsp) # 4-byte Folded Spill
  56. .LBB3_3:
  57. movq %r12, %rdi
  58. callq __tsan_read4@PLT
  59. movl (%r12), %eax
  60. movq %rax, 8(%rsp) # 8-byte Spill
  61. testl %eax, %eax
  62. movq %r14, 24(%rsp) # 8-byte Spill
  63. jle .LBB3_4
  64. # %bb.5:
  65. movq %r15, 48(%rsp) # 8-byte Spill
  66. leaq 8(%r12), %rdi
  67. callq __tsan_read8@PLT
  68. movq 8(%r12), %rdx
  69. movq 8(%rsp), %rcx # 8-byte Reload
  70. leaq -1(%rcx), %rax
  71. # kill: def $ecx killed $ecx killed $rcx def $rcx
  72. andl $3, %ecx
  73. movq %rcx, 40(%rsp) # 8-byte Spill
  74. cmpq $3, %rax
  75. movq %rdx, 32(%rsp) # 8-byte Spill
  76. jae .LBB3_7
  77. # %bb.6:
  78. movb $-128, %r15b
  79. xorl %r12d, %r12d
  80. jmp .LBB3_9
  81. .LBB3_4:
  82. movl $128, %ebx
  83. jmp .LBB3_13
  84. .LBB3_7:
  85. movq 8(%rsp), %rax # 8-byte Reload
  86. andl $-4, %eax
  87. movq %rax, 8(%rsp) # 8-byte Spill
  88. leaq 4(%rdx), %rbx
  89. movb $-128, %r15b
  90. xorl %r12d, %r12d
  91. .LBB3_8: # =>This Inner Loop Header: Depth=1
  92. leaq -4(%rbx), %rdi
  93. callq __tsan_read1@PLT
  94. movzbl -4(%rbx), %ecx
  95. addb %cl, %cl
  96. movl $1, %r14d
  97. shlq %cl, %r14
  98. orb %r15b, %r14b
  99. leaq -2(%rbx), %rdi
  100. callq __tsan_read1@PLT
  101. movzbl -2(%rbx), %ecx
  102. addb %cl, %cl
  103. movl $1, %ebp
  104. shlq %cl, %rbp
  105. movq %rbx, %rdi
  106. callq __tsan_read1@PLT
  107. movzbl (%rbx), %ecx
  108. addb %cl, %cl
  109. movl $1, %r13d
  110. shlq %cl, %r13
  111. orb %bpl, %r13b
  112. orb %r14b, %r13b
  113. leaq 2(%rbx), %rdi
  114. callq __tsan_read1@PLT
  115. movzbl 2(%rbx), %ecx
  116. addb %cl, %cl
  117. movl $1, %r15d
  118. shlq %cl, %r15
  119. orb %r13b, %r15b
  120. addq $4, %r12
  121. addq $8, %rbx
  122. cmpq %r12, 8(%rsp) # 8-byte Folded Reload
  123. jne .LBB3_8
  124. .LBB3_9:
  125. movq 40(%rsp), %rbp # 8-byte Reload
  126. testq %rbp, %rbp
  127. je .LBB3_12
  128. # %bb.10:
  129. movq 32(%rsp), %rax # 8-byte Reload
  130. leaq (%rax,%r12,2), %rbx
  131. .LBB3_11: # =>This Inner Loop Header: Depth=1
  132. movq %rbx, %rdi
  133. callq __tsan_read1@PLT
  134. movzbl (%rbx), %ecx
  135. addb %cl, %cl
  136. movl $1, %eax
  137. shlq %cl, %rax
  138. orb %al, %r15b
  139. addq $2, %rbx
  140. addq $-1, %rbp
  141. jne .LBB3_11
  142. .LBB3_12:
  143. movzbl %r15b, %ebx
  144. movq 24(%rsp), %r14 # 8-byte Reload
  145. movq 48(%rsp), %r15 # 8-byte Reload
  146. .LBB3_13:
  147. leaq 472(%r14), %r12
  148. movq %r12, %rdi
  149. callq __tsan_read8@PLT
  150. movq 472(%r14), %rax
  151. #APP
  152. movl %ebx, 2068(%rax)
  153. #NO_APP
  154. movq %r12, %rdi
  155. callq __tsan_read8@PLT
  156. movq 472(%r14), %rax
  157. movl $1, %ecx
  158. #APP
  159. movl %ecx, 2072(%rax)
  160. #NO_APP
  161. movq %r12, %rdi
  162. callq __tsan_read8@PLT
  163. movq 472(%r14), %rax
  164. movl $2, %ecx
  165. #APP
  166. movl %ecx, 2076(%rax)
  167. #NO_APP
  168. movq %r12, %rdi
  169. callq __tsan_read8@PLT
  170. movq 472(%r14), %rax
  171. xorl %ebp, %ebp
  172. #APP
  173. movl %ebp, 2048(%rax)
  174. #NO_APP
  175. movl 20(%rsp), %eax # 4-byte Reload
  176. addl $-3, %eax
  177. cmpl $1, %eax
  178. ja .LBB3_47
  179. # %bb.14:
  180. movq %r14, %rdi
  181. callq __tsan_read8@PLT
  182. movq (%r14), %rbx
  183. movq %rbx, %rdi
  184. callq __tsan_read4@PLT
  185. movl (%rbx), %eax
  186. cmpl $3, %eax
  187. jne .LBB3_16
  188. # %bb.15:
  189. movl $14, %r14d
  190. movq $lane_regs_sdm845, %rbx
  191. jmp .LBB3_18
  192. .LBB3_47:
  193. movq %r15, %rdi
  194. callq __tsan_read8@PLT
  195. movq (%r15), %r13
  196. movq %r13, %rdi
  197. callq __tsan_read4@PLT
  198. movl (%r13), %eax
  199. testl %eax, %eax
  200. js .LBB3_52
  201. # %bb.48:
  202. leaq 8(%r13), %rcx
  203. movq %rcx, 8(%rsp) # 8-byte Spill
  204. xorl %r14d, %r14d
  205. jmp .LBB3_49
  206. .LBB3_51: # in Loop: Header=BB3_49 Depth=1
  207. movq %r12, %rdi
  208. callq __tsan_read8@PLT
  209. movq (%r12), %rax
  210. movl %ebp, %r15d
  211. shlq $8, %r15
  212. movl $215, %ecx
  213. #APP
  214. movl %ecx, (%rax,%r15)
  215. #NO_APP
  216. movq %r12, %rdi
  217. callq __tsan_read8@PLT
  218. movq (%r12), %rax
  219. movl $8, %ecx
  220. #APP
  221. movl %ecx, 4(%rax,%r15)
  222. #NO_APP
  223. movq %r12, %rdi
  224. callq __tsan_read8@PLT
  225. movq (%r12), %rax
  226. movl 4(%rsp), %ecx # 4-byte Reload
  227. #APP
  228. movl %ecx, 8(%rax,%r15)
  229. #NO_APP
  230. movq %r12, %rdi
  231. callq __tsan_read8@PLT
  232. movq (%r12), %rax
  233. movl $82, %ecx
  234. #APP
  235. movl %ecx, 16(%rax,%r15)
  236. #NO_APP
  237. movq %r12, %rdi
  238. callq __tsan_read8@PLT
  239. movq (%r12), %rax
  240. movl $1, %ebx
  241. #APP
  242. movl %ebx, 44(%rax,%r15)
  243. #NO_APP
  244. movq %r12, %rdi
  245. callq __tsan_read8@PLT
  246. movq (%r12), %rax
  247. movl $2, %ecx
  248. #APP
  249. movl %ecx, 48(%rax,%r15)
  250. #NO_APP
  251. movq %r12, %rdi
  252. callq __tsan_read8@PLT
  253. movq (%r12), %rax
  254. movl $3, %ecx
  255. #APP
  256. movl %ecx, 52(%rax,%r15)
  257. #NO_APP
  258. movq %r12, %rdi
  259. callq __tsan_read8@PLT
  260. movq (%r12), %rax
  261. #APP
  262. movl %ebx, 56(%rax,%r15)
  263. #NO_APP
  264. movq %r12, %rdi
  265. callq __tsan_read8@PLT
  266. movq (%r12), %rax
  267. movl $10, %ecx
  268. #APP
  269. movl %ecx, 28(%rax,%r15)
  270. #NO_APP
  271. movq %r12, %rdi
  272. callq __tsan_read8@PLT
  273. movq (%r12), %rax
  274. movl $184, %ecx
  275. #APP
  276. movl %ecx, 60(%rax,%r15)
  277. #NO_APP
  278. addl $1, %r14d
  279. movq %r13, %rdi
  280. callq __tsan_read4@PLT
  281. movl (%r13), %eax
  282. cmpl %eax, %r14d
  283. jg .LBB3_52
  284. .LBB3_49: # =>This Inner Loop Header: Depth=1
  285. movl $7, %ebp
  286. cmpl %eax, %r14d
  287. je .LBB3_51
  288. # %bb.50: # in Loop: Header=BB3_49 Depth=1
  289. movq 8(%rsp), %rbx # 8-byte Reload
  290. movq %rbx, %rdi
  291. callq __tsan_read8@PLT
  292. movq (%rbx), %rbp
  293. movslq %r14d, %rbx
  294. leaq (,%rbx,2), %rdi
  295. addq %rbp, %rdi
  296. callq __tsan_read1@PLT
  297. movzbl (%rbp,%rbx,2), %ebp
  298. addl %ebp, %ebp
  299. jmp .LBB3_51
  300. .LBB3_52:
  301. movq %r12, %rdi
  302. callq __tsan_read8@PLT
  303. movq 24(%rsp), %r15 # 8-byte Reload
  304. movq 472(%r15), %rax
  305. movl %ebp, %ebp
  306. shlq $8, %rbp
  307. movl $192, %ecx
  308. #APP
  309. movl %ecx, (%rax,%rbp)
  310. #NO_APP
  311. movq %r15, %rdi
  312. callq __tsan_read8@PLT
  313. movq (%r15), %r14
  314. movq %r14, %rdi
  315. callq __tsan_read4@PLT
  316. xorl %ebx, %ebx
  317. cmpl $2, (%r14)
  318. sete %bl
  319. orl $164, %ebx
  320. movq %r12, %rdi
  321. callq __tsan_read8@PLT
  322. movq 472(%r15), %rax
  323. #APP
  324. movl %ebx, 12(%rax,%rbp)
  325. #NO_APP
  326. movq %r12, %rdi
  327. callq __tsan_read8@PLT
  328. movq 472(%r15), %rax
  329. movl $4, %ecx
  330. #APP
  331. movl %ecx, 40(%rax,%rbp)
  332. #NO_APP
  333. .LBB3_53:
  334. movq %r12, %rdi
  335. callq __tsan_read8@PLT
  336. movq (%r12), %rax
  337. xorl %ebx, %ebx
  338. #APP
  339. movl %ebx, 2092(%rax)
  340. #NO_APP
  341. movq %r12, %rdi
  342. callq __tsan_read8@PLT
  343. movq (%r12), %rax
  344. #APP
  345. movl %ebx, 2096(%rax)
  346. #NO_APP
  347. movq %r12, %rdi
  348. callq __tsan_read8@PLT
  349. movq (%r12), %rax
  350. #APP
  351. movl %ebx, 2100(%rax)
  352. #NO_APP
  353. movq %r12, %rdi
  354. callq __tsan_read8@PLT
  355. movq (%r12), %rax
  356. #APP
  357. movl %ebx, 2104(%rax)
  358. #NO_APP
  359. movq %r12, %rdi
  360. callq __tsan_read8@PLT
  361. movq (%r12), %rax
  362. #APP
  363. movl %ebx, 2108(%rax)
  364. #NO_APP
  365. movq %r12, %rdi
  366. callq __tsan_read8@PLT
  367. movq (%r12), %rax
  368. #APP
  369. movl %ebx, 2112(%rax)
  370. #NO_APP
  371. movq %r12, %rdi
  372. callq __tsan_read8@PLT
  373. movq (%r12), %rax
  374. #APP
  375. movl %ebx, 2116(%rax)
  376. #NO_APP
  377. movq %r12, %rdi
  378. callq __tsan_read8@PLT
  379. movq (%r12), %rax
  380. #APP
  381. movl %ebx, 2120(%rax)
  382. #NO_APP
  383. movq %r12, %rdi
  384. callq __tsan_read8@PLT
  385. movq (%r12), %rax
  386. #APP
  387. movl %ebx, 2124(%rax)
  388. #NO_APP
  389. movq %r12, %rdi
  390. callq __tsan_read8@PLT
  391. movq (%r12), %rax
  392. #APP
  393. movl %ebx, 2128(%rax)
  394. #NO_APP
  395. movq %r12, %rdi
  396. callq __tsan_read8@PLT
  397. movq (%r12), %rax
  398. #APP
  399. movl %ebx, 2132(%rax)
  400. #NO_APP
  401. addq $56, %rsp
  402. popq %rbx
  403. popq %r12
  404. popq %r13
  405. popq %r14
  406. popq %r15
  407. popq %rbp
  408. retq
  409. .LBB3_16:
  410. cmpl $4, %eax
  411. jne .LBB3_54
  412. # %bb.17:
  413. movl $20, %r14d
  414. movq $lane_regs_sm8250, %rbx
  415. .LBB3_18:
  416. movl %r14d, %ebp
  417. jmp .LBB3_19
  418. .LBB3_22: # in Loop: Header=BB3_19 Depth=1
  419. movq %r12, %rdi
  420. callq __tsan_read8@PLT
  421. movq (%r12), %r13
  422. movq %rbx, %rdi
  423. callq __tsan_read4@PLT
  424. movslq (%rbx), %rax
  425. #APP
  426. movl %r15d, (%r13,%rax)
  427. #NO_APP
  428. .LBB3_23: # in Loop: Header=BB3_19 Depth=1
  429. addq $16, %rbx
  430. addl $-1, %ebp
  431. je .LBB3_24
  432. .LBB3_19: # =>This Inner Loop Header: Depth=1
  433. leaq 12(%rbx), %rdi
  434. callq __tsan_read4@PLT
  435. movl 12(%rbx), %eax
  436. movl 4(%rsp), %r15d # 4-byte Reload
  437. cmpl $2, %eax
  438. je .LBB3_22
  439. # %bb.20: # in Loop: Header=BB3_19 Depth=1
  440. cmpl $4, %eax
  441. je .LBB3_23
  442. # %bb.21: # in Loop: Header=BB3_19 Depth=1
  443. leaq 4(%rbx), %rdi
  444. callq __tsan_read4@PLT
  445. movl 4(%rbx), %r15d
  446. jmp .LBB3_22
  447. .LBB3_24:
  448. movl %r14d, %ebp
  449. jmp .LBB3_25
  450. .LBB3_28: # in Loop: Header=BB3_25 Depth=1
  451. movq %r12, %rdi
  452. callq __tsan_read8@PLT
  453. movq (%r12), %r13
  454. movq %rbx, %rdi
  455. callq __tsan_read4@PLT
  456. movslq (%rbx), %rax
  457. #APP
  458. movl %r15d, (%r13,%rax)
  459. #NO_APP
  460. .LBB3_29: # in Loop: Header=BB3_25 Depth=1
  461. addq $16, %rbx
  462. addl $-1, %ebp
  463. je .LBB3_30
  464. .LBB3_25: # =>This Inner Loop Header: Depth=1
  465. leaq 12(%rbx), %rdi
  466. callq __tsan_read4@PLT
  467. movl 12(%rbx), %eax
  468. movl 4(%rsp), %r15d # 4-byte Reload
  469. cmpl $2, %eax
  470. je .LBB3_28
  471. # %bb.26: # in Loop: Header=BB3_25 Depth=1
  472. cmpl $4, %eax
  473. je .LBB3_29
  474. # %bb.27: # in Loop: Header=BB3_25 Depth=1
  475. leaq 4(%rbx), %rdi
  476. callq __tsan_read4@PLT
  477. movl 4(%rbx), %r15d
  478. jmp .LBB3_28
  479. .LBB3_30:
  480. movl %r14d, %ebp
  481. jmp .LBB3_31
  482. .LBB3_34: # in Loop: Header=BB3_31 Depth=1
  483. movq %r12, %rdi
  484. callq __tsan_read8@PLT
  485. movq (%r12), %r13
  486. movq %rbx, %rdi
  487. callq __tsan_read4@PLT
  488. movslq (%rbx), %rax
  489. #APP
  490. movl %r15d, (%r13,%rax)
  491. #NO_APP
  492. .LBB3_35: # in Loop: Header=BB3_31 Depth=1
  493. addq $16, %rbx
  494. addl $-1, %ebp
  495. je .LBB3_36
  496. .LBB3_31: # =>This Inner Loop Header: Depth=1
  497. leaq 12(%rbx), %rdi
  498. callq __tsan_read4@PLT
  499. movl 12(%rbx), %eax
  500. movl 4(%rsp), %r15d # 4-byte Reload
  501. cmpl $2, %eax
  502. je .LBB3_34
  503. # %bb.32: # in Loop: Header=BB3_31 Depth=1
  504. cmpl $4, %eax
  505. je .LBB3_35
  506. # %bb.33: # in Loop: Header=BB3_31 Depth=1
  507. leaq 4(%rbx), %rdi
  508. callq __tsan_read4@PLT
  509. movl 4(%rbx), %r15d
  510. jmp .LBB3_34
  511. .LBB3_36:
  512. movl %r14d, %ebp
  513. jmp .LBB3_37
  514. .LBB3_40: # in Loop: Header=BB3_37 Depth=1
  515. movq %r12, %rdi
  516. callq __tsan_read8@PLT
  517. movq (%r12), %r13
  518. movq %rbx, %rdi
  519. callq __tsan_read4@PLT
  520. movslq (%rbx), %rax
  521. #APP
  522. movl %r15d, (%r13,%rax)
  523. #NO_APP
  524. .LBB3_41: # in Loop: Header=BB3_37 Depth=1
  525. addq $16, %rbx
  526. addl $-1, %ebp
  527. je .LBB3_42
  528. .LBB3_37: # =>This Inner Loop Header: Depth=1
  529. leaq 12(%rbx), %rdi
  530. callq __tsan_read4@PLT
  531. movl 12(%rbx), %eax
  532. movl 4(%rsp), %r15d # 4-byte Reload
  533. cmpl $2, %eax
  534. je .LBB3_40
  535. # %bb.38: # in Loop: Header=BB3_37 Depth=1
  536. cmpl $4, %eax
  537. je .LBB3_41
  538. # %bb.39: # in Loop: Header=BB3_37 Depth=1
  539. leaq 4(%rbx), %rdi
  540. callq __tsan_read4@PLT
  541. movl 4(%rbx), %r15d
  542. jmp .LBB3_40
  543. .LBB3_45: # in Loop: Header=BB3_42 Depth=1
  544. movq %r12, %rdi
  545. callq __tsan_read8@PLT
  546. movq (%r12), %r15
  547. movq %rbx, %rdi
  548. callq __tsan_read4@PLT
  549. movslq (%rbx), %rax
  550. #APP
  551. movl %ebp, (%r15,%rax)
  552. #NO_APP
  553. .LBB3_46: # in Loop: Header=BB3_42 Depth=1
  554. addq $16, %rbx
  555. addl $-1, %r14d
  556. je .LBB3_53
  557. .LBB3_42: # =>This Inner Loop Header: Depth=1
  558. leaq 12(%rbx), %rdi
  559. callq __tsan_read4@PLT
  560. movl 12(%rbx), %eax
  561. movl 4(%rsp), %ebp # 4-byte Reload
  562. cmpl $2, %eax
  563. je .LBB3_45
  564. # %bb.43: # in Loop: Header=BB3_42 Depth=1
  565. cmpl $4, %eax
  566. je .LBB3_46
  567. # %bb.44: # in Loop: Header=BB3_42 Depth=1
  568. leaq 4(%rbx), %rdi
  569. callq __tsan_read4@PLT
  570. movl 4(%rbx), %ebp
  571. jmp .LBB3_45
  572. .LBB3_54:
  573. #APP
  574. .Ltmp0:
  575. .section .discard.unreachable,"",@progbits
  576. .Ltmp1:
  577. .long .Ltmp0-.Ltmp1
  578. .text
  579.  
  580.  
  581. #NO_APP
  582. .Lfunc_end3:
  583. .size csiphy_lanes_enable, .Lfunc_end3-csiphy_lanes_enable
  584. # -- End function
  585.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement