aesni-sha1-x86_64.s 56 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023
  1. .text
  2. .globl _aesni_cbc_sha1_enc
  3. .p2align 5
  4. _aesni_cbc_sha1_enc:
  5. movl _OPENSSL_ia32cap_P+0(%rip),%r10d
  6. movq _OPENSSL_ia32cap_P+4(%rip),%r11
  7. btq $61,%r11
  8. jc aesni_cbc_sha1_enc_shaext
  9. andl $268435456,%r11d
  10. andl $1073741824,%r10d
  11. orl %r11d,%r10d
  12. cmpl $1342177280,%r10d
  13. je aesni_cbc_sha1_enc_avx
  14. jmp aesni_cbc_sha1_enc_ssse3
  15. .byte 0xf3,0xc3
  16. .p2align 5
  17. aesni_cbc_sha1_enc_ssse3:
  18. movq 8(%rsp),%r10
  19. pushq %rbx
  20. pushq %rbp
  21. pushq %r12
  22. pushq %r13
  23. pushq %r14
  24. pushq %r15
  25. leaq -104(%rsp),%rsp
  26. movq %rdi,%r12
  27. movq %rsi,%r13
  28. movq %rdx,%r14
  29. leaq 112(%rcx),%r15
  30. movdqu (%r8),%xmm2
  31. movq %r8,88(%rsp)
  32. shlq $6,%r14
  33. subq %r12,%r13
  34. movl 240-112(%r15),%r8d
  35. addq %r10,%r14
  36. leaq K_XX_XX(%rip),%r11
  37. movl 0(%r9),%eax
  38. movl 4(%r9),%ebx
  39. movl 8(%r9),%ecx
  40. movl 12(%r9),%edx
  41. movl %ebx,%esi
  42. movl 16(%r9),%ebp
  43. movl %ecx,%edi
  44. xorl %edx,%edi
  45. andl %edi,%esi
  46. movdqa 64(%r11),%xmm3
  47. movdqa 0(%r11),%xmm13
  48. movdqu 0(%r10),%xmm4
  49. movdqu 16(%r10),%xmm5
  50. movdqu 32(%r10),%xmm6
  51. movdqu 48(%r10),%xmm7
  52. .byte 102,15,56,0,227
  53. .byte 102,15,56,0,235
  54. .byte 102,15,56,0,243
  55. addq $64,%r10
  56. paddd %xmm13,%xmm4
  57. .byte 102,15,56,0,251
  58. paddd %xmm13,%xmm5
  59. paddd %xmm13,%xmm6
  60. movdqa %xmm4,0(%rsp)
  61. psubd %xmm13,%xmm4
  62. movdqa %xmm5,16(%rsp)
  63. psubd %xmm13,%xmm5
  64. movdqa %xmm6,32(%rsp)
  65. psubd %xmm13,%xmm6
  66. movups -112(%r15),%xmm15
  67. movups 16-112(%r15),%xmm0
  68. jmp L$oop_ssse3
  69. .p2align 5
  70. L$oop_ssse3:
  71. rorl $2,%ebx
  72. movups 0(%r12),%xmm14
  73. xorps %xmm15,%xmm14
  74. xorps %xmm14,%xmm2
  75. movups -80(%r15),%xmm1
  76. .byte 102,15,56,220,208
  77. pshufd $238,%xmm4,%xmm8
  78. xorl %edx,%esi
  79. movdqa %xmm7,%xmm12
  80. paddd %xmm7,%xmm13
  81. movl %eax,%edi
  82. addl 0(%rsp),%ebp
  83. punpcklqdq %xmm5,%xmm8
  84. xorl %ecx,%ebx
  85. roll $5,%eax
  86. addl %esi,%ebp
  87. psrldq $4,%xmm12
  88. andl %ebx,%edi
  89. xorl %ecx,%ebx
  90. pxor %xmm4,%xmm8
  91. addl %eax,%ebp
  92. rorl $7,%eax
  93. pxor %xmm6,%xmm12
  94. xorl %ecx,%edi
  95. movl %ebp,%esi
  96. addl 4(%rsp),%edx
  97. pxor %xmm12,%xmm8
  98. xorl %ebx,%eax
  99. roll $5,%ebp
  100. movdqa %xmm13,48(%rsp)
  101. addl %edi,%edx
  102. movups -64(%r15),%xmm0
  103. .byte 102,15,56,220,209
  104. andl %eax,%esi
  105. movdqa %xmm8,%xmm3
  106. xorl %ebx,%eax
  107. addl %ebp,%edx
  108. rorl $7,%ebp
  109. movdqa %xmm8,%xmm12
  110. xorl %ebx,%esi
  111. pslldq $12,%xmm3
  112. paddd %xmm8,%xmm8
  113. movl %edx,%edi
  114. addl 8(%rsp),%ecx
  115. psrld $31,%xmm12
  116. xorl %eax,%ebp
  117. roll $5,%edx
  118. addl %esi,%ecx
  119. movdqa %xmm3,%xmm13
  120. andl %ebp,%edi
  121. xorl %eax,%ebp
  122. psrld $30,%xmm3
  123. addl %edx,%ecx
  124. rorl $7,%edx
  125. por %xmm12,%xmm8
  126. xorl %eax,%edi
  127. movl %ecx,%esi
  128. addl 12(%rsp),%ebx
  129. movups -48(%r15),%xmm1
  130. .byte 102,15,56,220,208
  131. pslld $2,%xmm13
  132. pxor %xmm3,%xmm8
  133. xorl %ebp,%edx
  134. movdqa 0(%r11),%xmm3
  135. roll $5,%ecx
  136. addl %edi,%ebx
  137. andl %edx,%esi
  138. pxor %xmm13,%xmm8
  139. xorl %ebp,%edx
  140. addl %ecx,%ebx
  141. rorl $7,%ecx
  142. pshufd $238,%xmm5,%xmm9
  143. xorl %ebp,%esi
  144. movdqa %xmm8,%xmm13
  145. paddd %xmm8,%xmm3
  146. movl %ebx,%edi
  147. addl 16(%rsp),%eax
  148. punpcklqdq %xmm6,%xmm9
  149. xorl %edx,%ecx
  150. roll $5,%ebx
  151. addl %esi,%eax
  152. psrldq $4,%xmm13
  153. andl %ecx,%edi
  154. xorl %edx,%ecx
  155. pxor %xmm5,%xmm9
  156. addl %ebx,%eax
  157. rorl $7,%ebx
  158. movups -32(%r15),%xmm0
  159. .byte 102,15,56,220,209
  160. pxor %xmm7,%xmm13
  161. xorl %edx,%edi
  162. movl %eax,%esi
  163. addl 20(%rsp),%ebp
  164. pxor %xmm13,%xmm9
  165. xorl %ecx,%ebx
  166. roll $5,%eax
  167. movdqa %xmm3,0(%rsp)
  168. addl %edi,%ebp
  169. andl %ebx,%esi
  170. movdqa %xmm9,%xmm12
  171. xorl %ecx,%ebx
  172. addl %eax,%ebp
  173. rorl $7,%eax
  174. movdqa %xmm9,%xmm13
  175. xorl %ecx,%esi
  176. pslldq $12,%xmm12
  177. paddd %xmm9,%xmm9
  178. movl %ebp,%edi
  179. addl 24(%rsp),%edx
  180. psrld $31,%xmm13
  181. xorl %ebx,%eax
  182. roll $5,%ebp
  183. addl %esi,%edx
  184. movups -16(%r15),%xmm1
  185. .byte 102,15,56,220,208
  186. movdqa %xmm12,%xmm3
  187. andl %eax,%edi
  188. xorl %ebx,%eax
  189. psrld $30,%xmm12
  190. addl %ebp,%edx
  191. rorl $7,%ebp
  192. por %xmm13,%xmm9
  193. xorl %ebx,%edi
  194. movl %edx,%esi
  195. addl 28(%rsp),%ecx
  196. pslld $2,%xmm3
  197. pxor %xmm12,%xmm9
  198. xorl %eax,%ebp
  199. movdqa 16(%r11),%xmm12
  200. roll $5,%edx
  201. addl %edi,%ecx
  202. andl %ebp,%esi
  203. pxor %xmm3,%xmm9
  204. xorl %eax,%ebp
  205. addl %edx,%ecx
  206. rorl $7,%edx
  207. pshufd $238,%xmm6,%xmm10
  208. xorl %eax,%esi
  209. movdqa %xmm9,%xmm3
  210. paddd %xmm9,%xmm12
  211. movl %ecx,%edi
  212. addl 32(%rsp),%ebx
  213. movups 0(%r15),%xmm0
  214. .byte 102,15,56,220,209
  215. punpcklqdq %xmm7,%xmm10
  216. xorl %ebp,%edx
  217. roll $5,%ecx
  218. addl %esi,%ebx
  219. psrldq $4,%xmm3
  220. andl %edx,%edi
  221. xorl %ebp,%edx
  222. pxor %xmm6,%xmm10
  223. addl %ecx,%ebx
  224. rorl $7,%ecx
  225. pxor %xmm8,%xmm3
  226. xorl %ebp,%edi
  227. movl %ebx,%esi
  228. addl 36(%rsp),%eax
  229. pxor %xmm3,%xmm10
  230. xorl %edx,%ecx
  231. roll $5,%ebx
  232. movdqa %xmm12,16(%rsp)
  233. addl %edi,%eax
  234. andl %ecx,%esi
  235. movdqa %xmm10,%xmm13
  236. xorl %edx,%ecx
  237. addl %ebx,%eax
  238. rorl $7,%ebx
  239. movups 16(%r15),%xmm1
  240. .byte 102,15,56,220,208
  241. movdqa %xmm10,%xmm3
  242. xorl %edx,%esi
  243. pslldq $12,%xmm13
  244. paddd %xmm10,%xmm10
  245. movl %eax,%edi
  246. addl 40(%rsp),%ebp
  247. psrld $31,%xmm3
  248. xorl %ecx,%ebx
  249. roll $5,%eax
  250. addl %esi,%ebp
  251. movdqa %xmm13,%xmm12
  252. andl %ebx,%edi
  253. xorl %ecx,%ebx
  254. psrld $30,%xmm13
  255. addl %eax,%ebp
  256. rorl $7,%eax
  257. por %xmm3,%xmm10
  258. xorl %ecx,%edi
  259. movl %ebp,%esi
  260. addl 44(%rsp),%edx
  261. pslld $2,%xmm12
  262. pxor %xmm13,%xmm10
  263. xorl %ebx,%eax
  264. movdqa 16(%r11),%xmm13
  265. roll $5,%ebp
  266. addl %edi,%edx
  267. movups 32(%r15),%xmm0
  268. .byte 102,15,56,220,209
  269. andl %eax,%esi
  270. pxor %xmm12,%xmm10
  271. xorl %ebx,%eax
  272. addl %ebp,%edx
  273. rorl $7,%ebp
  274. pshufd $238,%xmm7,%xmm11
  275. xorl %ebx,%esi
  276. movdqa %xmm10,%xmm12
  277. paddd %xmm10,%xmm13
  278. movl %edx,%edi
  279. addl 48(%rsp),%ecx
  280. punpcklqdq %xmm8,%xmm11
  281. xorl %eax,%ebp
  282. roll $5,%edx
  283. addl %esi,%ecx
  284. psrldq $4,%xmm12
  285. andl %ebp,%edi
  286. xorl %eax,%ebp
  287. pxor %xmm7,%xmm11
  288. addl %edx,%ecx
  289. rorl $7,%edx
  290. pxor %xmm9,%xmm12
  291. xorl %eax,%edi
  292. movl %ecx,%esi
  293. addl 52(%rsp),%ebx
  294. movups 48(%r15),%xmm1
  295. .byte 102,15,56,220,208
  296. pxor %xmm12,%xmm11
  297. xorl %ebp,%edx
  298. roll $5,%ecx
  299. movdqa %xmm13,32(%rsp)
  300. addl %edi,%ebx
  301. andl %edx,%esi
  302. movdqa %xmm11,%xmm3
  303. xorl %ebp,%edx
  304. addl %ecx,%ebx
  305. rorl $7,%ecx
  306. movdqa %xmm11,%xmm12
  307. xorl %ebp,%esi
  308. pslldq $12,%xmm3
  309. paddd %xmm11,%xmm11
  310. movl %ebx,%edi
  311. addl 56(%rsp),%eax
  312. psrld $31,%xmm12
  313. xorl %edx,%ecx
  314. roll $5,%ebx
  315. addl %esi,%eax
  316. movdqa %xmm3,%xmm13
  317. andl %ecx,%edi
  318. xorl %edx,%ecx
  319. psrld $30,%xmm3
  320. addl %ebx,%eax
  321. rorl $7,%ebx
  322. cmpl $11,%r8d
  323. jb L$aesenclast1
  324. movups 64(%r15),%xmm0
  325. .byte 102,15,56,220,209
  326. movups 80(%r15),%xmm1
  327. .byte 102,15,56,220,208
  328. je L$aesenclast1
  329. movups 96(%r15),%xmm0
  330. .byte 102,15,56,220,209
  331. movups 112(%r15),%xmm1
  332. .byte 102,15,56,220,208
  333. L$aesenclast1:
  334. .byte 102,15,56,221,209
  335. movups 16-112(%r15),%xmm0
  336. por %xmm12,%xmm11
  337. xorl %edx,%edi
  338. movl %eax,%esi
  339. addl 60(%rsp),%ebp
  340. pslld $2,%xmm13
  341. pxor %xmm3,%xmm11
  342. xorl %ecx,%ebx
  343. movdqa 16(%r11),%xmm3
  344. roll $5,%eax
  345. addl %edi,%ebp
  346. andl %ebx,%esi
  347. pxor %xmm13,%xmm11
  348. pshufd $238,%xmm10,%xmm13
  349. xorl %ecx,%ebx
  350. addl %eax,%ebp
  351. rorl $7,%eax
  352. pxor %xmm8,%xmm4
  353. xorl %ecx,%esi
  354. movl %ebp,%edi
  355. addl 0(%rsp),%edx
  356. punpcklqdq %xmm11,%xmm13
  357. xorl %ebx,%eax
  358. roll $5,%ebp
  359. pxor %xmm5,%xmm4
  360. addl %esi,%edx
  361. movups 16(%r12),%xmm14
  362. xorps %xmm15,%xmm14
  363. movups %xmm2,0(%r12,%r13,1)
  364. xorps %xmm14,%xmm2
  365. movups -80(%r15),%xmm1
  366. .byte 102,15,56,220,208
  367. andl %eax,%edi
  368. movdqa %xmm3,%xmm12
  369. xorl %ebx,%eax
  370. paddd %xmm11,%xmm3
  371. addl %ebp,%edx
  372. pxor %xmm13,%xmm4
  373. rorl $7,%ebp
  374. xorl %ebx,%edi
  375. movl %edx,%esi
  376. addl 4(%rsp),%ecx
  377. movdqa %xmm4,%xmm13
  378. xorl %eax,%ebp
  379. roll $5,%edx
  380. movdqa %xmm3,48(%rsp)
  381. addl %edi,%ecx
  382. andl %ebp,%esi
  383. xorl %eax,%ebp
  384. pslld $2,%xmm4
  385. addl %edx,%ecx
  386. rorl $7,%edx
  387. psrld $30,%xmm13
  388. xorl %eax,%esi
  389. movl %ecx,%edi
  390. addl 8(%rsp),%ebx
  391. movups -64(%r15),%xmm0
  392. .byte 102,15,56,220,209
  393. por %xmm13,%xmm4
  394. xorl %ebp,%edx
  395. roll $5,%ecx
  396. pshufd $238,%xmm11,%xmm3
  397. addl %esi,%ebx
  398. andl %edx,%edi
  399. xorl %ebp,%edx
  400. addl %ecx,%ebx
  401. addl 12(%rsp),%eax
  402. xorl %ebp,%edi
  403. movl %ebx,%esi
  404. roll $5,%ebx
  405. addl %edi,%eax
  406. xorl %edx,%esi
  407. rorl $7,%ecx
  408. addl %ebx,%eax
  409. pxor %xmm9,%xmm5
  410. addl 16(%rsp),%ebp
  411. movups -48(%r15),%xmm1
  412. .byte 102,15,56,220,208
  413. xorl %ecx,%esi
  414. punpcklqdq %xmm4,%xmm3
  415. movl %eax,%edi
  416. roll $5,%eax
  417. pxor %xmm6,%xmm5
  418. addl %esi,%ebp
  419. xorl %ecx,%edi
  420. movdqa %xmm12,%xmm13
  421. rorl $7,%ebx
  422. paddd %xmm4,%xmm12
  423. addl %eax,%ebp
  424. pxor %xmm3,%xmm5
  425. addl 20(%rsp),%edx
  426. xorl %ebx,%edi
  427. movl %ebp,%esi
  428. roll $5,%ebp
  429. movdqa %xmm5,%xmm3
  430. addl %edi,%edx
  431. xorl %ebx,%esi
  432. movdqa %xmm12,0(%rsp)
  433. rorl $7,%eax
  434. addl %ebp,%edx
  435. addl 24(%rsp),%ecx
  436. pslld $2,%xmm5
  437. xorl %eax,%esi
  438. movl %edx,%edi
  439. psrld $30,%xmm3
  440. roll $5,%edx
  441. addl %esi,%ecx
  442. movups -32(%r15),%xmm0
  443. .byte 102,15,56,220,209
  444. xorl %eax,%edi
  445. rorl $7,%ebp
  446. por %xmm3,%xmm5
  447. addl %edx,%ecx
  448. addl 28(%rsp),%ebx
  449. pshufd $238,%xmm4,%xmm12
  450. xorl %ebp,%edi
  451. movl %ecx,%esi
  452. roll $5,%ecx
  453. addl %edi,%ebx
  454. xorl %ebp,%esi
  455. rorl $7,%edx
  456. addl %ecx,%ebx
  457. pxor %xmm10,%xmm6
  458. addl 32(%rsp),%eax
  459. xorl %edx,%esi
  460. punpcklqdq %xmm5,%xmm12
  461. movl %ebx,%edi
  462. roll $5,%ebx
  463. pxor %xmm7,%xmm6
  464. addl %esi,%eax
  465. xorl %edx,%edi
  466. movdqa 32(%r11),%xmm3
  467. rorl $7,%ecx
  468. paddd %xmm5,%xmm13
  469. addl %ebx,%eax
  470. pxor %xmm12,%xmm6
  471. addl 36(%rsp),%ebp
  472. movups -16(%r15),%xmm1
  473. .byte 102,15,56,220,208
  474. xorl %ecx,%edi
  475. movl %eax,%esi
  476. roll $5,%eax
  477. movdqa %xmm6,%xmm12
  478. addl %edi,%ebp
  479. xorl %ecx,%esi
  480. movdqa %xmm13,16(%rsp)
  481. rorl $7,%ebx
  482. addl %eax,%ebp
  483. addl 40(%rsp),%edx
  484. pslld $2,%xmm6
  485. xorl %ebx,%esi
  486. movl %ebp,%edi
  487. psrld $30,%xmm12
  488. roll $5,%ebp
  489. addl %esi,%edx
  490. xorl %ebx,%edi
  491. rorl $7,%eax
  492. por %xmm12,%xmm6
  493. addl %ebp,%edx
  494. addl 44(%rsp),%ecx
  495. pshufd $238,%xmm5,%xmm13
  496. xorl %eax,%edi
  497. movl %edx,%esi
  498. roll $5,%edx
  499. addl %edi,%ecx
  500. movups 0(%r15),%xmm0
  501. .byte 102,15,56,220,209
  502. xorl %eax,%esi
  503. rorl $7,%ebp
  504. addl %edx,%ecx
  505. pxor %xmm11,%xmm7
  506. addl 48(%rsp),%ebx
  507. xorl %ebp,%esi
  508. punpcklqdq %xmm6,%xmm13
  509. movl %ecx,%edi
  510. roll $5,%ecx
  511. pxor %xmm8,%xmm7
  512. addl %esi,%ebx
  513. xorl %ebp,%edi
  514. movdqa %xmm3,%xmm12
  515. rorl $7,%edx
  516. paddd %xmm6,%xmm3
  517. addl %ecx,%ebx
  518. pxor %xmm13,%xmm7
  519. addl 52(%rsp),%eax
  520. xorl %edx,%edi
  521. movl %ebx,%esi
  522. roll $5,%ebx
  523. movdqa %xmm7,%xmm13
  524. addl %edi,%eax
  525. xorl %edx,%esi
  526. movdqa %xmm3,32(%rsp)
  527. rorl $7,%ecx
  528. addl %ebx,%eax
  529. addl 56(%rsp),%ebp
  530. movups 16(%r15),%xmm1
  531. .byte 102,15,56,220,208
  532. pslld $2,%xmm7
  533. xorl %ecx,%esi
  534. movl %eax,%edi
  535. psrld $30,%xmm13
  536. roll $5,%eax
  537. addl %esi,%ebp
  538. xorl %ecx,%edi
  539. rorl $7,%ebx
  540. por %xmm13,%xmm7
  541. addl %eax,%ebp
  542. addl 60(%rsp),%edx
  543. pshufd $238,%xmm6,%xmm3
  544. xorl %ebx,%edi
  545. movl %ebp,%esi
  546. roll $5,%ebp
  547. addl %edi,%edx
  548. xorl %ebx,%esi
  549. rorl $7,%eax
  550. addl %ebp,%edx
  551. pxor %xmm4,%xmm8
  552. addl 0(%rsp),%ecx
  553. xorl %eax,%esi
  554. punpcklqdq %xmm7,%xmm3
  555. movl %edx,%edi
  556. roll $5,%edx
  557. pxor %xmm9,%xmm8
  558. addl %esi,%ecx
  559. movups 32(%r15),%xmm0
  560. .byte 102,15,56,220,209
  561. xorl %eax,%edi
  562. movdqa %xmm12,%xmm13
  563. rorl $7,%ebp
  564. paddd %xmm7,%xmm12
  565. addl %edx,%ecx
  566. pxor %xmm3,%xmm8
  567. addl 4(%rsp),%ebx
  568. xorl %ebp,%edi
  569. movl %ecx,%esi
  570. roll $5,%ecx
  571. movdqa %xmm8,%xmm3
  572. addl %edi,%ebx
  573. xorl %ebp,%esi
  574. movdqa %xmm12,48(%rsp)
  575. rorl $7,%edx
  576. addl %ecx,%ebx
  577. addl 8(%rsp),%eax
  578. pslld $2,%xmm8
  579. xorl %edx,%esi
  580. movl %ebx,%edi
  581. psrld $30,%xmm3
  582. roll $5,%ebx
  583. addl %esi,%eax
  584. xorl %edx,%edi
  585. rorl $7,%ecx
  586. por %xmm3,%xmm8
  587. addl %ebx,%eax
  588. addl 12(%rsp),%ebp
  589. movups 48(%r15),%xmm1
  590. .byte 102,15,56,220,208
  591. pshufd $238,%xmm7,%xmm12
  592. xorl %ecx,%edi
  593. movl %eax,%esi
  594. roll $5,%eax
  595. addl %edi,%ebp
  596. xorl %ecx,%esi
  597. rorl $7,%ebx
  598. addl %eax,%ebp
  599. pxor %xmm5,%xmm9
  600. addl 16(%rsp),%edx
  601. xorl %ebx,%esi
  602. punpcklqdq %xmm8,%xmm12
  603. movl %ebp,%edi
  604. roll $5,%ebp
  605. pxor %xmm10,%xmm9
  606. addl %esi,%edx
  607. xorl %ebx,%edi
  608. movdqa %xmm13,%xmm3
  609. rorl $7,%eax
  610. paddd %xmm8,%xmm13
  611. addl %ebp,%edx
  612. pxor %xmm12,%xmm9
  613. addl 20(%rsp),%ecx
  614. xorl %eax,%edi
  615. movl %edx,%esi
  616. roll $5,%edx
  617. movdqa %xmm9,%xmm12
  618. addl %edi,%ecx
  619. cmpl $11,%r8d
  620. jb L$aesenclast2
  621. movups 64(%r15),%xmm0
  622. .byte 102,15,56,220,209
  623. movups 80(%r15),%xmm1
  624. .byte 102,15,56,220,208
  625. je L$aesenclast2
  626. movups 96(%r15),%xmm0
  627. .byte 102,15,56,220,209
  628. movups 112(%r15),%xmm1
  629. .byte 102,15,56,220,208
  630. L$aesenclast2:
  631. .byte 102,15,56,221,209
  632. movups 16-112(%r15),%xmm0
  633. xorl %eax,%esi
  634. movdqa %xmm13,0(%rsp)
  635. rorl $7,%ebp
  636. addl %edx,%ecx
  637. addl 24(%rsp),%ebx
  638. pslld $2,%xmm9
  639. xorl %ebp,%esi
  640. movl %ecx,%edi
  641. psrld $30,%xmm12
  642. roll $5,%ecx
  643. addl %esi,%ebx
  644. xorl %ebp,%edi
  645. rorl $7,%edx
  646. por %xmm12,%xmm9
  647. addl %ecx,%ebx
  648. addl 28(%rsp),%eax
  649. pshufd $238,%xmm8,%xmm13
  650. rorl $7,%ecx
  651. movl %ebx,%esi
  652. xorl %edx,%edi
  653. roll $5,%ebx
  654. addl %edi,%eax
  655. xorl %ecx,%esi
  656. xorl %edx,%ecx
  657. addl %ebx,%eax
  658. pxor %xmm6,%xmm10
  659. addl 32(%rsp),%ebp
  660. movups 32(%r12),%xmm14
  661. xorps %xmm15,%xmm14
  662. movups %xmm2,16(%r13,%r12,1)
  663. xorps %xmm14,%xmm2
  664. movups -80(%r15),%xmm1
  665. .byte 102,15,56,220,208
  666. andl %ecx,%esi
  667. xorl %edx,%ecx
  668. rorl $7,%ebx
  669. punpcklqdq %xmm9,%xmm13
  670. movl %eax,%edi
  671. xorl %ecx,%esi
  672. pxor %xmm11,%xmm10
  673. roll $5,%eax
  674. addl %esi,%ebp
  675. movdqa %xmm3,%xmm12
  676. xorl %ebx,%edi
  677. paddd %xmm9,%xmm3
  678. xorl %ecx,%ebx
  679. pxor %xmm13,%xmm10
  680. addl %eax,%ebp
  681. addl 36(%rsp),%edx
  682. andl %ebx,%edi
  683. xorl %ecx,%ebx
  684. rorl $7,%eax
  685. movdqa %xmm10,%xmm13
  686. movl %ebp,%esi
  687. xorl %ebx,%edi
  688. movdqa %xmm3,16(%rsp)
  689. roll $5,%ebp
  690. addl %edi,%edx
  691. movups -64(%r15),%xmm0
  692. .byte 102,15,56,220,209
  693. xorl %eax,%esi
  694. pslld $2,%xmm10
  695. xorl %ebx,%eax
  696. addl %ebp,%edx
  697. psrld $30,%xmm13
  698. addl 40(%rsp),%ecx
  699. andl %eax,%esi
  700. xorl %ebx,%eax
  701. por %xmm13,%xmm10
  702. rorl $7,%ebp
  703. movl %edx,%edi
  704. xorl %eax,%esi
  705. roll $5,%edx
  706. pshufd $238,%xmm9,%xmm3
  707. addl %esi,%ecx
  708. xorl %ebp,%edi
  709. xorl %eax,%ebp
  710. addl %edx,%ecx
  711. addl 44(%rsp),%ebx
  712. andl %ebp,%edi
  713. xorl %eax,%ebp
  714. rorl $7,%edx
  715. movups -48(%r15),%xmm1
  716. .byte 102,15,56,220,208
  717. movl %ecx,%esi
  718. xorl %ebp,%edi
  719. roll $5,%ecx
  720. addl %edi,%ebx
  721. xorl %edx,%esi
  722. xorl %ebp,%edx
  723. addl %ecx,%ebx
  724. pxor %xmm7,%xmm11
  725. addl 48(%rsp),%eax
  726. andl %edx,%esi
  727. xorl %ebp,%edx
  728. rorl $7,%ecx
  729. punpcklqdq %xmm10,%xmm3
  730. movl %ebx,%edi
  731. xorl %edx,%esi
  732. pxor %xmm4,%xmm11
  733. roll $5,%ebx
  734. addl %esi,%eax
  735. movdqa 48(%r11),%xmm13
  736. xorl %ecx,%edi
  737. paddd %xmm10,%xmm12
  738. xorl %edx,%ecx
  739. pxor %xmm3,%xmm11
  740. addl %ebx,%eax
  741. addl 52(%rsp),%ebp
  742. movups -32(%r15),%xmm0
  743. .byte 102,15,56,220,209
  744. andl %ecx,%edi
  745. xorl %edx,%ecx
  746. rorl $7,%ebx
  747. movdqa %xmm11,%xmm3
  748. movl %eax,%esi
  749. xorl %ecx,%edi
  750. movdqa %xmm12,32(%rsp)
  751. roll $5,%eax
  752. addl %edi,%ebp
  753. xorl %ebx,%esi
  754. pslld $2,%xmm11
  755. xorl %ecx,%ebx
  756. addl %eax,%ebp
  757. psrld $30,%xmm3
  758. addl 56(%rsp),%edx
  759. andl %ebx,%esi
  760. xorl %ecx,%ebx
  761. por %xmm3,%xmm11
  762. rorl $7,%eax
  763. movl %ebp,%edi
  764. xorl %ebx,%esi
  765. roll $5,%ebp
  766. pshufd $238,%xmm10,%xmm12
  767. addl %esi,%edx
  768. movups -16(%r15),%xmm1
  769. .byte 102,15,56,220,208
  770. xorl %eax,%edi
  771. xorl %ebx,%eax
  772. addl %ebp,%edx
  773. addl 60(%rsp),%ecx
  774. andl %eax,%edi
  775. xorl %ebx,%eax
  776. rorl $7,%ebp
  777. movl %edx,%esi
  778. xorl %eax,%edi
  779. roll $5,%edx
  780. addl %edi,%ecx
  781. xorl %ebp,%esi
  782. xorl %eax,%ebp
  783. addl %edx,%ecx
  784. pxor %xmm8,%xmm4
  785. addl 0(%rsp),%ebx
  786. andl %ebp,%esi
  787. xorl %eax,%ebp
  788. rorl $7,%edx
  789. movups 0(%r15),%xmm0
  790. .byte 102,15,56,220,209
  791. punpcklqdq %xmm11,%xmm12
  792. movl %ecx,%edi
  793. xorl %ebp,%esi
  794. pxor %xmm5,%xmm4
  795. roll $5,%ecx
  796. addl %esi,%ebx
  797. movdqa %xmm13,%xmm3
  798. xorl %edx,%edi
  799. paddd %xmm11,%xmm13
  800. xorl %ebp,%edx
  801. pxor %xmm12,%xmm4
  802. addl %ecx,%ebx
  803. addl 4(%rsp),%eax
  804. andl %edx,%edi
  805. xorl %ebp,%edx
  806. rorl $7,%ecx
  807. movdqa %xmm4,%xmm12
  808. movl %ebx,%esi
  809. xorl %edx,%edi
  810. movdqa %xmm13,48(%rsp)
  811. roll $5,%ebx
  812. addl %edi,%eax
  813. xorl %ecx,%esi
  814. pslld $2,%xmm4
  815. xorl %edx,%ecx
  816. addl %ebx,%eax
  817. psrld $30,%xmm12
  818. addl 8(%rsp),%ebp
  819. movups 16(%r15),%xmm1
  820. .byte 102,15,56,220,208
  821. andl %ecx,%esi
  822. xorl %edx,%ecx
  823. por %xmm12,%xmm4
  824. rorl $7,%ebx
  825. movl %eax,%edi
  826. xorl %ecx,%esi
  827. roll $5,%eax
  828. pshufd $238,%xmm11,%xmm13
  829. addl %esi,%ebp
  830. xorl %ebx,%edi
  831. xorl %ecx,%ebx
  832. addl %eax,%ebp
  833. addl 12(%rsp),%edx
  834. andl %ebx,%edi
  835. xorl %ecx,%ebx
  836. rorl $7,%eax
  837. movl %ebp,%esi
  838. xorl %ebx,%edi
  839. roll $5,%ebp
  840. addl %edi,%edx
  841. movups 32(%r15),%xmm0
  842. .byte 102,15,56,220,209
  843. xorl %eax,%esi
  844. xorl %ebx,%eax
  845. addl %ebp,%edx
  846. pxor %xmm9,%xmm5
  847. addl 16(%rsp),%ecx
  848. andl %eax,%esi
  849. xorl %ebx,%eax
  850. rorl $7,%ebp
  851. punpcklqdq %xmm4,%xmm13
  852. movl %edx,%edi
  853. xorl %eax,%esi
  854. pxor %xmm6,%xmm5
  855. roll $5,%edx
  856. addl %esi,%ecx
  857. movdqa %xmm3,%xmm12
  858. xorl %ebp,%edi
  859. paddd %xmm4,%xmm3
  860. xorl %eax,%ebp
  861. pxor %xmm13,%xmm5
  862. addl %edx,%ecx
  863. addl 20(%rsp),%ebx
  864. andl %ebp,%edi
  865. xorl %eax,%ebp
  866. rorl $7,%edx
  867. movups 48(%r15),%xmm1
  868. .byte 102,15,56,220,208
  869. movdqa %xmm5,%xmm13
  870. movl %ecx,%esi
  871. xorl %ebp,%edi
  872. movdqa %xmm3,0(%rsp)
  873. roll $5,%ecx
  874. addl %edi,%ebx
  875. xorl %edx,%esi
  876. pslld $2,%xmm5
  877. xorl %ebp,%edx
  878. addl %ecx,%ebx
  879. psrld $30,%xmm13
  880. addl 24(%rsp),%eax
  881. andl %edx,%esi
  882. xorl %ebp,%edx
  883. por %xmm13,%xmm5
  884. rorl $7,%ecx
  885. movl %ebx,%edi
  886. xorl %edx,%esi
  887. roll $5,%ebx
  888. pshufd $238,%xmm4,%xmm3
  889. addl %esi,%eax
  890. xorl %ecx,%edi
  891. xorl %edx,%ecx
  892. addl %ebx,%eax
  893. addl 28(%rsp),%ebp
  894. cmpl $11,%r8d
  895. jb L$aesenclast3
  896. movups 64(%r15),%xmm0
  897. .byte 102,15,56,220,209
  898. movups 80(%r15),%xmm1
  899. .byte 102,15,56,220,208
  900. je L$aesenclast3
  901. movups 96(%r15),%xmm0
  902. .byte 102,15,56,220,209
  903. movups 112(%r15),%xmm1
  904. .byte 102,15,56,220,208
  905. L$aesenclast3:
  906. .byte 102,15,56,221,209
  907. movups 16-112(%r15),%xmm0
  908. andl %ecx,%edi
  909. xorl %edx,%ecx
  910. rorl $7,%ebx
  911. movl %eax,%esi
  912. xorl %ecx,%edi
  913. roll $5,%eax
  914. addl %edi,%ebp
  915. xorl %ebx,%esi
  916. xorl %ecx,%ebx
  917. addl %eax,%ebp
  918. pxor %xmm10,%xmm6
  919. addl 32(%rsp),%edx
  920. andl %ebx,%esi
  921. xorl %ecx,%ebx
  922. rorl $7,%eax
  923. punpcklqdq %xmm5,%xmm3
  924. movl %ebp,%edi
  925. xorl %ebx,%esi
  926. pxor %xmm7,%xmm6
  927. roll $5,%ebp
  928. addl %esi,%edx
  929. movups 48(%r12),%xmm14
  930. xorps %xmm15,%xmm14
  931. movups %xmm2,32(%r13,%r12,1)
  932. xorps %xmm14,%xmm2
  933. movups -80(%r15),%xmm1
  934. .byte 102,15,56,220,208
  935. movdqa %xmm12,%xmm13
  936. xorl %eax,%edi
  937. paddd %xmm5,%xmm12
  938. xorl %ebx,%eax
  939. pxor %xmm3,%xmm6
  940. addl %ebp,%edx
  941. addl 36(%rsp),%ecx
  942. andl %eax,%edi
  943. xorl %ebx,%eax
  944. rorl $7,%ebp
  945. movdqa %xmm6,%xmm3
  946. movl %edx,%esi
  947. xorl %eax,%edi
  948. movdqa %xmm12,16(%rsp)
  949. roll $5,%edx
  950. addl %edi,%ecx
  951. xorl %ebp,%esi
  952. pslld $2,%xmm6
  953. xorl %eax,%ebp
  954. addl %edx,%ecx
  955. psrld $30,%xmm3
  956. addl 40(%rsp),%ebx
  957. andl %ebp,%esi
  958. xorl %eax,%ebp
  959. por %xmm3,%xmm6
  960. rorl $7,%edx
  961. movups -64(%r15),%xmm0
  962. .byte 102,15,56,220,209
  963. movl %ecx,%edi
  964. xorl %ebp,%esi
  965. roll $5,%ecx
  966. pshufd $238,%xmm5,%xmm12
  967. addl %esi,%ebx
  968. xorl %edx,%edi
  969. xorl %ebp,%edx
  970. addl %ecx,%ebx
  971. addl 44(%rsp),%eax
  972. andl %edx,%edi
  973. xorl %ebp,%edx
  974. rorl $7,%ecx
  975. movl %ebx,%esi
  976. xorl %edx,%edi
  977. roll $5,%ebx
  978. addl %edi,%eax
  979. xorl %edx,%esi
  980. addl %ebx,%eax
  981. pxor %xmm11,%xmm7
  982. addl 48(%rsp),%ebp
  983. movups -48(%r15),%xmm1
  984. .byte 102,15,56,220,208
  985. xorl %ecx,%esi
  986. punpcklqdq %xmm6,%xmm12
  987. movl %eax,%edi
  988. roll $5,%eax
  989. pxor %xmm8,%xmm7
  990. addl %esi,%ebp
  991. xorl %ecx,%edi
  992. movdqa %xmm13,%xmm3
  993. rorl $7,%ebx
  994. paddd %xmm6,%xmm13
  995. addl %eax,%ebp
  996. pxor %xmm12,%xmm7
  997. addl 52(%rsp),%edx
  998. xorl %ebx,%edi
  999. movl %ebp,%esi
  1000. roll $5,%ebp
  1001. movdqa %xmm7,%xmm12
  1002. addl %edi,%edx
  1003. xorl %ebx,%esi
  1004. movdqa %xmm13,32(%rsp)
  1005. rorl $7,%eax
  1006. addl %ebp,%edx
  1007. addl 56(%rsp),%ecx
  1008. pslld $2,%xmm7
  1009. xorl %eax,%esi
  1010. movl %edx,%edi
  1011. psrld $30,%xmm12
  1012. roll $5,%edx
  1013. addl %esi,%ecx
  1014. movups -32(%r15),%xmm0
  1015. .byte 102,15,56,220,209
  1016. xorl %eax,%edi
  1017. rorl $7,%ebp
  1018. por %xmm12,%xmm7
  1019. addl %edx,%ecx
  1020. addl 60(%rsp),%ebx
  1021. xorl %ebp,%edi
  1022. movl %ecx,%esi
  1023. roll $5,%ecx
  1024. addl %edi,%ebx
  1025. xorl %ebp,%esi
  1026. rorl $7,%edx
  1027. addl %ecx,%ebx
  1028. addl 0(%rsp),%eax
  1029. xorl %edx,%esi
  1030. movl %ebx,%edi
  1031. roll $5,%ebx
  1032. paddd %xmm7,%xmm3
  1033. addl %esi,%eax
  1034. xorl %edx,%edi
  1035. movdqa %xmm3,48(%rsp)
  1036. rorl $7,%ecx
  1037. addl %ebx,%eax
  1038. addl 4(%rsp),%ebp
  1039. movups -16(%r15),%xmm1
  1040. .byte 102,15,56,220,208
  1041. xorl %ecx,%edi
  1042. movl %eax,%esi
  1043. roll $5,%eax
  1044. addl %edi,%ebp
  1045. xorl %ecx,%esi
  1046. rorl $7,%ebx
  1047. addl %eax,%ebp
  1048. addl 8(%rsp),%edx
  1049. xorl %ebx,%esi
  1050. movl %ebp,%edi
  1051. roll $5,%ebp
  1052. addl %esi,%edx
  1053. xorl %ebx,%edi
  1054. rorl $7,%eax
  1055. addl %ebp,%edx
  1056. addl 12(%rsp),%ecx
  1057. xorl %eax,%edi
  1058. movl %edx,%esi
  1059. roll $5,%edx
  1060. addl %edi,%ecx
  1061. movups 0(%r15),%xmm0
  1062. .byte 102,15,56,220,209
  1063. xorl %eax,%esi
  1064. rorl $7,%ebp
  1065. addl %edx,%ecx
  1066. cmpq %r14,%r10
  1067. je L$done_ssse3
  1068. movdqa 64(%r11),%xmm3
  1069. movdqa 0(%r11),%xmm13
  1070. movdqu 0(%r10),%xmm4
  1071. movdqu 16(%r10),%xmm5
  1072. movdqu 32(%r10),%xmm6
  1073. movdqu 48(%r10),%xmm7
  1074. .byte 102,15,56,0,227
  1075. addq $64,%r10
  1076. addl 16(%rsp),%ebx
  1077. xorl %ebp,%esi
  1078. movl %ecx,%edi
  1079. .byte 102,15,56,0,235
  1080. roll $5,%ecx
  1081. addl %esi,%ebx
  1082. xorl %ebp,%edi
  1083. rorl $7,%edx
  1084. paddd %xmm13,%xmm4
  1085. addl %ecx,%ebx
  1086. addl 20(%rsp),%eax
  1087. xorl %edx,%edi
  1088. movl %ebx,%esi
  1089. movdqa %xmm4,0(%rsp)
  1090. roll $5,%ebx
  1091. addl %edi,%eax
  1092. xorl %edx,%esi
  1093. rorl $7,%ecx
  1094. psubd %xmm13,%xmm4
  1095. addl %ebx,%eax
  1096. addl 24(%rsp),%ebp
  1097. movups 16(%r15),%xmm1
  1098. .byte 102,15,56,220,208
  1099. xorl %ecx,%esi
  1100. movl %eax,%edi
  1101. roll $5,%eax
  1102. addl %esi,%ebp
  1103. xorl %ecx,%edi
  1104. rorl $7,%ebx
  1105. addl %eax,%ebp
  1106. addl 28(%rsp),%edx
  1107. xorl %ebx,%edi
  1108. movl %ebp,%esi
  1109. roll $5,%ebp
  1110. addl %edi,%edx
  1111. xorl %ebx,%esi
  1112. rorl $7,%eax
  1113. addl %ebp,%edx
  1114. addl 32(%rsp),%ecx
  1115. xorl %eax,%esi
  1116. movl %edx,%edi
  1117. .byte 102,15,56,0,243
  1118. roll $5,%edx
  1119. addl %esi,%ecx
  1120. movups 32(%r15),%xmm0
  1121. .byte 102,15,56,220,209
  1122. xorl %eax,%edi
  1123. rorl $7,%ebp
  1124. paddd %xmm13,%xmm5
  1125. addl %edx,%ecx
  1126. addl 36(%rsp),%ebx
  1127. xorl %ebp,%edi
  1128. movl %ecx,%esi
  1129. movdqa %xmm5,16(%rsp)
  1130. roll $5,%ecx
  1131. addl %edi,%ebx
  1132. xorl %ebp,%esi
  1133. rorl $7,%edx
  1134. psubd %xmm13,%xmm5
  1135. addl %ecx,%ebx
  1136. addl 40(%rsp),%eax
  1137. xorl %edx,%esi
  1138. movl %ebx,%edi
  1139. roll $5,%ebx
  1140. addl %esi,%eax
  1141. xorl %edx,%edi
  1142. rorl $7,%ecx
  1143. addl %ebx,%eax
  1144. addl 44(%rsp),%ebp
  1145. movups 48(%r15),%xmm1
  1146. .byte 102,15,56,220,208
  1147. xorl %ecx,%edi
  1148. movl %eax,%esi
  1149. roll $5,%eax
  1150. addl %edi,%ebp
  1151. xorl %ecx,%esi
  1152. rorl $7,%ebx
  1153. addl %eax,%ebp
  1154. addl 48(%rsp),%edx
  1155. xorl %ebx,%esi
  1156. movl %ebp,%edi
  1157. .byte 102,15,56,0,251
  1158. roll $5,%ebp
  1159. addl %esi,%edx
  1160. xorl %ebx,%edi
  1161. rorl $7,%eax
  1162. paddd %xmm13,%xmm6
  1163. addl %ebp,%edx
  1164. addl 52(%rsp),%ecx
  1165. xorl %eax,%edi
  1166. movl %edx,%esi
  1167. movdqa %xmm6,32(%rsp)
  1168. roll $5,%edx
  1169. addl %edi,%ecx
  1170. cmpl $11,%r8d
  1171. jb L$aesenclast4
  1172. movups 64(%r15),%xmm0
  1173. .byte 102,15,56,220,209
  1174. movups 80(%r15),%xmm1
  1175. .byte 102,15,56,220,208
  1176. je L$aesenclast4
  1177. movups 96(%r15),%xmm0
  1178. .byte 102,15,56,220,209
  1179. movups 112(%r15),%xmm1
  1180. .byte 102,15,56,220,208
  1181. L$aesenclast4:
  1182. .byte 102,15,56,221,209
  1183. movups 16-112(%r15),%xmm0
  1184. xorl %eax,%esi
  1185. rorl $7,%ebp
  1186. psubd %xmm13,%xmm6
  1187. addl %edx,%ecx
  1188. addl 56(%rsp),%ebx
  1189. xorl %ebp,%esi
  1190. movl %ecx,%edi
  1191. roll $5,%ecx
  1192. addl %esi,%ebx
  1193. xorl %ebp,%edi
  1194. rorl $7,%edx
  1195. addl %ecx,%ebx
  1196. addl 60(%rsp),%eax
  1197. xorl %edx,%edi
  1198. movl %ebx,%esi
  1199. roll $5,%ebx
  1200. addl %edi,%eax
  1201. rorl $7,%ecx
  1202. addl %ebx,%eax
  1203. movups %xmm2,48(%r13,%r12,1)
  1204. leaq 64(%r12),%r12
  1205. addl 0(%r9),%eax
  1206. addl 4(%r9),%esi
  1207. addl 8(%r9),%ecx
  1208. addl 12(%r9),%edx
  1209. movl %eax,0(%r9)
  1210. addl 16(%r9),%ebp
  1211. movl %esi,4(%r9)
  1212. movl %esi,%ebx
  1213. movl %ecx,8(%r9)
  1214. movl %ecx,%edi
  1215. movl %edx,12(%r9)
  1216. xorl %edx,%edi
  1217. movl %ebp,16(%r9)
  1218. andl %edi,%esi
  1219. jmp L$oop_ssse3
  1220. L$done_ssse3:
  1221. addl 16(%rsp),%ebx
  1222. xorl %ebp,%esi
  1223. movl %ecx,%edi
  1224. roll $5,%ecx
  1225. addl %esi,%ebx
  1226. xorl %ebp,%edi
  1227. rorl $7,%edx
  1228. addl %ecx,%ebx
  1229. addl 20(%rsp),%eax
  1230. xorl %edx,%edi
  1231. movl %ebx,%esi
  1232. roll $5,%ebx
  1233. addl %edi,%eax
  1234. xorl %edx,%esi
  1235. rorl $7,%ecx
  1236. addl %ebx,%eax
  1237. addl 24(%rsp),%ebp
  1238. movups 16(%r15),%xmm1
  1239. .byte 102,15,56,220,208
  1240. xorl %ecx,%esi
  1241. movl %eax,%edi
  1242. roll $5,%eax
  1243. addl %esi,%ebp
  1244. xorl %ecx,%edi
  1245. rorl $7,%ebx
  1246. addl %eax,%ebp
  1247. addl 28(%rsp),%edx
  1248. xorl %ebx,%edi
  1249. movl %ebp,%esi
  1250. roll $5,%ebp
  1251. addl %edi,%edx
  1252. xorl %ebx,%esi
  1253. rorl $7,%eax
  1254. addl %ebp,%edx
  1255. addl 32(%rsp),%ecx
  1256. xorl %eax,%esi
  1257. movl %edx,%edi
  1258. roll $5,%edx
  1259. addl %esi,%ecx
  1260. movups 32(%r15),%xmm0
  1261. .byte 102,15,56,220,209
  1262. xorl %eax,%edi
  1263. rorl $7,%ebp
  1264. addl %edx,%ecx
  1265. addl 36(%rsp),%ebx
  1266. xorl %ebp,%edi
  1267. movl %ecx,%esi
  1268. roll $5,%ecx
  1269. addl %edi,%ebx
  1270. xorl %ebp,%esi
  1271. rorl $7,%edx
  1272. addl %ecx,%ebx
  1273. addl 40(%rsp),%eax
  1274. xorl %edx,%esi
  1275. movl %ebx,%edi
  1276. roll $5,%ebx
  1277. addl %esi,%eax
  1278. xorl %edx,%edi
  1279. rorl $7,%ecx
  1280. addl %ebx,%eax
  1281. addl 44(%rsp),%ebp
  1282. movups 48(%r15),%xmm1
  1283. .byte 102,15,56,220,208
  1284. xorl %ecx,%edi
  1285. movl %eax,%esi
  1286. roll $5,%eax
  1287. addl %edi,%ebp
  1288. xorl %ecx,%esi
  1289. rorl $7,%ebx
  1290. addl %eax,%ebp
  1291. addl 48(%rsp),%edx
  1292. xorl %ebx,%esi
  1293. movl %ebp,%edi
  1294. roll $5,%ebp
  1295. addl %esi,%edx
  1296. xorl %ebx,%edi
  1297. rorl $7,%eax
  1298. addl %ebp,%edx
  1299. addl 52(%rsp),%ecx
  1300. xorl %eax,%edi
  1301. movl %edx,%esi
  1302. roll $5,%edx
  1303. addl %edi,%ecx
  1304. cmpl $11,%r8d
  1305. jb L$aesenclast5
  1306. movups 64(%r15),%xmm0
  1307. .byte 102,15,56,220,209
  1308. movups 80(%r15),%xmm1
  1309. .byte 102,15,56,220,208
  1310. je L$aesenclast5
  1311. movups 96(%r15),%xmm0
  1312. .byte 102,15,56,220,209
  1313. movups 112(%r15),%xmm1
  1314. .byte 102,15,56,220,208
  1315. L$aesenclast5:
  1316. .byte 102,15,56,221,209
  1317. movups 16-112(%r15),%xmm0
  1318. xorl %eax,%esi
  1319. rorl $7,%ebp
  1320. addl %edx,%ecx
  1321. addl 56(%rsp),%ebx
  1322. xorl %ebp,%esi
  1323. movl %ecx,%edi
  1324. roll $5,%ecx
  1325. addl %esi,%ebx
  1326. xorl %ebp,%edi
  1327. rorl $7,%edx
  1328. addl %ecx,%ebx
  1329. addl 60(%rsp),%eax
  1330. xorl %edx,%edi
  1331. movl %ebx,%esi
  1332. roll $5,%ebx
  1333. addl %edi,%eax
  1334. rorl $7,%ecx
  1335. addl %ebx,%eax
  1336. movups %xmm2,48(%r13,%r12,1)
  1337. movq 88(%rsp),%r8
  1338. addl 0(%r9),%eax
  1339. addl 4(%r9),%esi
  1340. addl 8(%r9),%ecx
  1341. movl %eax,0(%r9)
  1342. addl 12(%r9),%edx
  1343. movl %esi,4(%r9)
  1344. addl 16(%r9),%ebp
  1345. movl %ecx,8(%r9)
  1346. movl %edx,12(%r9)
  1347. movl %ebp,16(%r9)
  1348. movups %xmm2,(%r8)
  1349. leaq 104(%rsp),%rsi
  1350. movq 0(%rsi),%r15
  1351. movq 8(%rsi),%r14
  1352. movq 16(%rsi),%r13
  1353. movq 24(%rsi),%r12
  1354. movq 32(%rsi),%rbp
  1355. movq 40(%rsi),%rbx
  1356. leaq 48(%rsi),%rsp
  1357. L$epilogue_ssse3:
  1358. .byte 0xf3,0xc3
  1359. .p2align 5
  1360. aesni_cbc_sha1_enc_avx:
  1361. movq 8(%rsp),%r10
  1362. pushq %rbx
  1363. pushq %rbp
  1364. pushq %r12
  1365. pushq %r13
  1366. pushq %r14
  1367. pushq %r15
  1368. leaq -104(%rsp),%rsp
  1369. vzeroall
  1370. movq %rdi,%r12
  1371. movq %rsi,%r13
  1372. movq %rdx,%r14
  1373. leaq 112(%rcx),%r15
  1374. vmovdqu (%r8),%xmm12
  1375. movq %r8,88(%rsp)
  1376. shlq $6,%r14
  1377. subq %r12,%r13
  1378. movl 240-112(%r15),%r8d
  1379. addq %r10,%r14
  1380. leaq K_XX_XX(%rip),%r11
  1381. movl 0(%r9),%eax
  1382. movl 4(%r9),%ebx
  1383. movl 8(%r9),%ecx
  1384. movl 12(%r9),%edx
  1385. movl %ebx,%esi
  1386. movl 16(%r9),%ebp
  1387. movl %ecx,%edi
  1388. xorl %edx,%edi
  1389. andl %edi,%esi
  1390. vmovdqa 64(%r11),%xmm6
  1391. vmovdqa 0(%r11),%xmm10
  1392. vmovdqu 0(%r10),%xmm0
  1393. vmovdqu 16(%r10),%xmm1
  1394. vmovdqu 32(%r10),%xmm2
  1395. vmovdqu 48(%r10),%xmm3
  1396. vpshufb %xmm6,%xmm0,%xmm0
  1397. addq $64,%r10
  1398. vpshufb %xmm6,%xmm1,%xmm1
  1399. vpshufb %xmm6,%xmm2,%xmm2
  1400. vpshufb %xmm6,%xmm3,%xmm3
  1401. vpaddd %xmm10,%xmm0,%xmm4
  1402. vpaddd %xmm10,%xmm1,%xmm5
  1403. vpaddd %xmm10,%xmm2,%xmm6
  1404. vmovdqa %xmm4,0(%rsp)
  1405. vmovdqa %xmm5,16(%rsp)
  1406. vmovdqa %xmm6,32(%rsp)
  1407. vmovups -112(%r15),%xmm15
  1408. vmovups 16-112(%r15),%xmm14
  1409. jmp L$oop_avx
  1410. .p2align 5
  1411. L$oop_avx:
  1412. shrdl $2,%ebx,%ebx
  1413. vmovdqu 0(%r12),%xmm13
  1414. vpxor %xmm15,%xmm13,%xmm13
  1415. vpxor %xmm13,%xmm12,%xmm12
  1416. vaesenc %xmm14,%xmm12,%xmm12
  1417. vmovups -80(%r15),%xmm15
  1418. xorl %edx,%esi
  1419. vpalignr $8,%xmm0,%xmm1,%xmm4
  1420. movl %eax,%edi
  1421. addl 0(%rsp),%ebp
  1422. vpaddd %xmm3,%xmm10,%xmm9
  1423. xorl %ecx,%ebx
  1424. shldl $5,%eax,%eax
  1425. vpsrldq $4,%xmm3,%xmm8
  1426. addl %esi,%ebp
  1427. andl %ebx,%edi
  1428. vpxor %xmm0,%xmm4,%xmm4
  1429. xorl %ecx,%ebx
  1430. addl %eax,%ebp
  1431. vpxor %xmm2,%xmm8,%xmm8
  1432. shrdl $7,%eax,%eax
  1433. xorl %ecx,%edi
  1434. movl %ebp,%esi
  1435. addl 4(%rsp),%edx
  1436. vpxor %xmm8,%xmm4,%xmm4
  1437. xorl %ebx,%eax
  1438. shldl $5,%ebp,%ebp
  1439. vmovdqa %xmm9,48(%rsp)
  1440. addl %edi,%edx
  1441. vaesenc %xmm15,%xmm12,%xmm12
  1442. vmovups -64(%r15),%xmm14
  1443. andl %eax,%esi
  1444. vpsrld $31,%xmm4,%xmm8
  1445. xorl %ebx,%eax
  1446. addl %ebp,%edx
  1447. shrdl $7,%ebp,%ebp
  1448. xorl %ebx,%esi
  1449. vpslldq $12,%xmm4,%xmm9
  1450. vpaddd %xmm4,%xmm4,%xmm4
  1451. movl %edx,%edi
  1452. addl 8(%rsp),%ecx
  1453. xorl %eax,%ebp
  1454. shldl $5,%edx,%edx
  1455. vpor %xmm8,%xmm4,%xmm4
  1456. vpsrld $30,%xmm9,%xmm8
  1457. addl %esi,%ecx
  1458. andl %ebp,%edi
  1459. xorl %eax,%ebp
  1460. addl %edx,%ecx
  1461. vpslld $2,%xmm9,%xmm9
  1462. vpxor %xmm8,%xmm4,%xmm4
  1463. shrdl $7,%edx,%edx
  1464. xorl %eax,%edi
  1465. movl %ecx,%esi
  1466. addl 12(%rsp),%ebx
  1467. vaesenc %xmm14,%xmm12,%xmm12
  1468. vmovups -48(%r15),%xmm15
  1469. vpxor %xmm9,%xmm4,%xmm4
  1470. xorl %ebp,%edx
  1471. shldl $5,%ecx,%ecx
  1472. addl %edi,%ebx
  1473. andl %edx,%esi
  1474. xorl %ebp,%edx
  1475. addl %ecx,%ebx
  1476. shrdl $7,%ecx,%ecx
  1477. xorl %ebp,%esi
  1478. vpalignr $8,%xmm1,%xmm2,%xmm5
  1479. movl %ebx,%edi
  1480. addl 16(%rsp),%eax
  1481. vpaddd %xmm4,%xmm10,%xmm9
  1482. xorl %edx,%ecx
  1483. shldl $5,%ebx,%ebx
  1484. vpsrldq $4,%xmm4,%xmm8
  1485. addl %esi,%eax
  1486. andl %ecx,%edi
  1487. vpxor %xmm1,%xmm5,%xmm5
  1488. xorl %edx,%ecx
  1489. addl %ebx,%eax
  1490. vpxor %xmm3,%xmm8,%xmm8
  1491. shrdl $7,%ebx,%ebx
  1492. vaesenc %xmm15,%xmm12,%xmm12
  1493. vmovups -32(%r15),%xmm14
  1494. xorl %edx,%edi
  1495. movl %eax,%esi
  1496. addl 20(%rsp),%ebp
  1497. vpxor %xmm8,%xmm5,%xmm5
  1498. xorl %ecx,%ebx
  1499. shldl $5,%eax,%eax
  1500. vmovdqa %xmm9,0(%rsp)
  1501. addl %edi,%ebp
  1502. andl %ebx,%esi
  1503. vpsrld $31,%xmm5,%xmm8
  1504. xorl %ecx,%ebx
  1505. addl %eax,%ebp
  1506. shrdl $7,%eax,%eax
  1507. xorl %ecx,%esi
  1508. vpslldq $12,%xmm5,%xmm9
  1509. vpaddd %xmm5,%xmm5,%xmm5
  1510. movl %ebp,%edi
  1511. addl 24(%rsp),%edx
  1512. xorl %ebx,%eax
  1513. shldl $5,%ebp,%ebp
  1514. vpor %xmm8,%xmm5,%xmm5
  1515. vpsrld $30,%xmm9,%xmm8
  1516. addl %esi,%edx
  1517. vaesenc %xmm14,%xmm12,%xmm12
  1518. vmovups -16(%r15),%xmm15
  1519. andl %eax,%edi
  1520. xorl %ebx,%eax
  1521. addl %ebp,%edx
  1522. vpslld $2,%xmm9,%xmm9
  1523. vpxor %xmm8,%xmm5,%xmm5
  1524. shrdl $7,%ebp,%ebp
  1525. xorl %ebx,%edi
  1526. movl %edx,%esi
  1527. addl 28(%rsp),%ecx
  1528. vpxor %xmm9,%xmm5,%xmm5
  1529. xorl %eax,%ebp
  1530. shldl $5,%edx,%edx
  1531. vmovdqa 16(%r11),%xmm10
  1532. addl %edi,%ecx
  1533. andl %ebp,%esi
  1534. xorl %eax,%ebp
  1535. addl %edx,%ecx
  1536. shrdl $7,%edx,%edx
  1537. xorl %eax,%esi
  1538. vpalignr $8,%xmm2,%xmm3,%xmm6
  1539. movl %ecx,%edi
  1540. addl 32(%rsp),%ebx
  1541. vaesenc %xmm15,%xmm12,%xmm12
  1542. vmovups 0(%r15),%xmm14
  1543. vpaddd %xmm5,%xmm10,%xmm9
  1544. xorl %ebp,%edx
  1545. shldl $5,%ecx,%ecx
  1546. vpsrldq $4,%xmm5,%xmm8
  1547. addl %esi,%ebx
  1548. andl %edx,%edi
  1549. vpxor %xmm2,%xmm6,%xmm6
  1550. xorl %ebp,%edx
  1551. addl %ecx,%ebx
  1552. vpxor %xmm4,%xmm8,%xmm8
  1553. shrdl $7,%ecx,%ecx
  1554. xorl %ebp,%edi
  1555. movl %ebx,%esi
  1556. addl 36(%rsp),%eax
  1557. vpxor %xmm8,%xmm6,%xmm6
  1558. xorl %edx,%ecx
  1559. shldl $5,%ebx,%ebx
  1560. vmovdqa %xmm9,16(%rsp)
  1561. addl %edi,%eax
  1562. andl %ecx,%esi
  1563. vpsrld $31,%xmm6,%xmm8
  1564. xorl %edx,%ecx
  1565. addl %ebx,%eax
  1566. shrdl $7,%ebx,%ebx
  1567. vaesenc %xmm14,%xmm12,%xmm12
  1568. vmovups 16(%r15),%xmm15
  1569. xorl %edx,%esi
  1570. vpslldq $12,%xmm6,%xmm9
  1571. vpaddd %xmm6,%xmm6,%xmm6
  1572. movl %eax,%edi
  1573. addl 40(%rsp),%ebp
  1574. xorl %ecx,%ebx
  1575. shldl $5,%eax,%eax
  1576. vpor %xmm8,%xmm6,%xmm6
  1577. vpsrld $30,%xmm9,%xmm8
  1578. addl %esi,%ebp
  1579. andl %ebx,%edi
  1580. xorl %ecx,%ebx
  1581. addl %eax,%ebp
  1582. vpslld $2,%xmm9,%xmm9
  1583. vpxor %xmm8,%xmm6,%xmm6
  1584. shrdl $7,%eax,%eax
  1585. xorl %ecx,%edi
  1586. movl %ebp,%esi
  1587. addl 44(%rsp),%edx
  1588. vpxor %xmm9,%xmm6,%xmm6
  1589. xorl %ebx,%eax
  1590. shldl $5,%ebp,%ebp
  1591. addl %edi,%edx
  1592. vaesenc %xmm15,%xmm12,%xmm12
  1593. vmovups 32(%r15),%xmm14
  1594. andl %eax,%esi
  1595. xorl %ebx,%eax
  1596. addl %ebp,%edx
  1597. shrdl $7,%ebp,%ebp
  1598. xorl %ebx,%esi
  1599. vpalignr $8,%xmm3,%xmm4,%xmm7
  1600. movl %edx,%edi
  1601. addl 48(%rsp),%ecx
  1602. vpaddd %xmm6,%xmm10,%xmm9
  1603. xorl %eax,%ebp
  1604. shldl $5,%edx,%edx
  1605. vpsrldq $4,%xmm6,%xmm8
  1606. addl %esi,%ecx
  1607. andl %ebp,%edi
  1608. vpxor %xmm3,%xmm7,%xmm7
  1609. xorl %eax,%ebp
  1610. addl %edx,%ecx
  1611. vpxor %xmm5,%xmm8,%xmm8
  1612. shrdl $7,%edx,%edx
  1613. xorl %eax,%edi
  1614. movl %ecx,%esi
  1615. addl 52(%rsp),%ebx
  1616. vaesenc %xmm14,%xmm12,%xmm12
  1617. vmovups 48(%r15),%xmm15
  1618. vpxor %xmm8,%xmm7,%xmm7
  1619. xorl %ebp,%edx
  1620. shldl $5,%ecx,%ecx
  1621. vmovdqa %xmm9,32(%rsp)
  1622. addl %edi,%ebx
  1623. andl %edx,%esi
  1624. vpsrld $31,%xmm7,%xmm8
  1625. xorl %ebp,%edx
  1626. addl %ecx,%ebx
  1627. shrdl $7,%ecx,%ecx
  1628. xorl %ebp,%esi
  1629. vpslldq $12,%xmm7,%xmm9
  1630. vpaddd %xmm7,%xmm7,%xmm7
  1631. movl %ebx,%edi
  1632. addl 56(%rsp),%eax
  1633. xorl %edx,%ecx
  1634. shldl $5,%ebx,%ebx
  1635. vpor %xmm8,%xmm7,%xmm7
  1636. vpsrld $30,%xmm9,%xmm8
  1637. addl %esi,%eax
  1638. andl %ecx,%edi
  1639. xorl %edx,%ecx
  1640. addl %ebx,%eax
  1641. vpslld $2,%xmm9,%xmm9
  1642. vpxor %xmm8,%xmm7,%xmm7
  1643. shrdl $7,%ebx,%ebx
  1644. cmpl $11,%r8d
  1645. jb L$vaesenclast6
  1646. vaesenc %xmm15,%xmm12,%xmm12
  1647. vmovups 64(%r15),%xmm14
  1648. vaesenc %xmm14,%xmm12,%xmm12
  1649. vmovups 80(%r15),%xmm15
  1650. je L$vaesenclast6
  1651. vaesenc %xmm15,%xmm12,%xmm12
  1652. vmovups 96(%r15),%xmm14
  1653. vaesenc %xmm14,%xmm12,%xmm12
  1654. vmovups 112(%r15),%xmm15
  1655. L$vaesenclast6:
  1656. vaesenclast %xmm15,%xmm12,%xmm12
  1657. vmovups -112(%r15),%xmm15
  1658. vmovups 16-112(%r15),%xmm14
  1659. xorl %edx,%edi
  1660. movl %eax,%esi
  1661. addl 60(%rsp),%ebp
  1662. vpxor %xmm9,%xmm7,%xmm7
  1663. xorl %ecx,%ebx
  1664. shldl $5,%eax,%eax
  1665. addl %edi,%ebp
  1666. andl %ebx,%esi
  1667. xorl %ecx,%ebx
  1668. addl %eax,%ebp
  1669. vpalignr $8,%xmm6,%xmm7,%xmm8
  1670. vpxor %xmm4,%xmm0,%xmm0
  1671. shrdl $7,%eax,%eax
  1672. xorl %ecx,%esi
  1673. movl %ebp,%edi
  1674. addl 0(%rsp),%edx
  1675. vpxor %xmm1,%xmm0,%xmm0
  1676. xorl %ebx,%eax
  1677. shldl $5,%ebp,%ebp
  1678. vpaddd %xmm7,%xmm10,%xmm9
  1679. addl %esi,%edx
  1680. vmovdqu 16(%r12),%xmm13
  1681. vpxor %xmm15,%xmm13,%xmm13
  1682. vmovups %xmm12,0(%r12,%r13,1)
  1683. vpxor %xmm13,%xmm12,%xmm12
  1684. vaesenc %xmm14,%xmm12,%xmm12
  1685. vmovups -80(%r15),%xmm15
  1686. andl %eax,%edi
  1687. vpxor %xmm8,%xmm0,%xmm0
  1688. xorl %ebx,%eax
  1689. addl %ebp,%edx
  1690. shrdl $7,%ebp,%ebp
  1691. xorl %ebx,%edi
  1692. vpsrld $30,%xmm0,%xmm8
  1693. vmovdqa %xmm9,48(%rsp)
  1694. movl %edx,%esi
  1695. addl 4(%rsp),%ecx
  1696. xorl %eax,%ebp
  1697. shldl $5,%edx,%edx
  1698. vpslld $2,%xmm0,%xmm0
  1699. addl %edi,%ecx
  1700. andl %ebp,%esi
  1701. xorl %eax,%ebp
  1702. addl %edx,%ecx
  1703. shrdl $7,%edx,%edx
  1704. xorl %eax,%esi
  1705. movl %ecx,%edi
  1706. addl 8(%rsp),%ebx
  1707. vaesenc %xmm15,%xmm12,%xmm12
  1708. vmovups -64(%r15),%xmm14
  1709. vpor %xmm8,%xmm0,%xmm0
  1710. xorl %ebp,%edx
  1711. shldl $5,%ecx,%ecx
  1712. addl %esi,%ebx
  1713. andl %edx,%edi
  1714. xorl %ebp,%edx
  1715. addl %ecx,%ebx
  1716. addl 12(%rsp),%eax
  1717. xorl %ebp,%edi
  1718. movl %ebx,%esi
  1719. shldl $5,%ebx,%ebx
  1720. addl %edi,%eax
  1721. xorl %edx,%esi
  1722. shrdl $7,%ecx,%ecx
  1723. addl %ebx,%eax
  1724. vpalignr $8,%xmm7,%xmm0,%xmm8
  1725. vpxor %xmm5,%xmm1,%xmm1
  1726. addl 16(%rsp),%ebp
  1727. vaesenc %xmm14,%xmm12,%xmm12
  1728. vmovups -48(%r15),%xmm15
  1729. xorl %ecx,%esi
  1730. movl %eax,%edi
  1731. shldl $5,%eax,%eax
  1732. vpxor %xmm2,%xmm1,%xmm1
  1733. addl %esi,%ebp
  1734. xorl %ecx,%edi
  1735. vpaddd %xmm0,%xmm10,%xmm9
  1736. shrdl $7,%ebx,%ebx
  1737. addl %eax,%ebp
  1738. vpxor %xmm8,%xmm1,%xmm1
  1739. addl 20(%rsp),%edx
  1740. xorl %ebx,%edi
  1741. movl %ebp,%esi
  1742. shldl $5,%ebp,%ebp
  1743. vpsrld $30,%xmm1,%xmm8
  1744. vmovdqa %xmm9,0(%rsp)
  1745. addl %edi,%edx
  1746. xorl %ebx,%esi
  1747. shrdl $7,%eax,%eax
  1748. addl %ebp,%edx
  1749. vpslld $2,%xmm1,%xmm1
  1750. addl 24(%rsp),%ecx
  1751. xorl %eax,%esi
  1752. movl %edx,%edi
  1753. shldl $5,%edx,%edx
  1754. addl %esi,%ecx
  1755. vaesenc %xmm15,%xmm12,%xmm12
  1756. vmovups -32(%r15),%xmm14
  1757. xorl %eax,%edi
  1758. shrdl $7,%ebp,%ebp
  1759. addl %edx,%ecx
  1760. vpor %xmm8,%xmm1,%xmm1
  1761. addl 28(%rsp),%ebx
  1762. xorl %ebp,%edi
  1763. movl %ecx,%esi
  1764. shldl $5,%ecx,%ecx
  1765. addl %edi,%ebx
  1766. xorl %ebp,%esi
  1767. shrdl $7,%edx,%edx
  1768. addl %ecx,%ebx
  1769. vpalignr $8,%xmm0,%xmm1,%xmm8
  1770. vpxor %xmm6,%xmm2,%xmm2
  1771. addl 32(%rsp),%eax
  1772. xorl %edx,%esi
  1773. movl %ebx,%edi
  1774. shldl $5,%ebx,%ebx
  1775. vpxor %xmm3,%xmm2,%xmm2
  1776. addl %esi,%eax
  1777. xorl %edx,%edi
  1778. vpaddd %xmm1,%xmm10,%xmm9
  1779. vmovdqa 32(%r11),%xmm10
  1780. shrdl $7,%ecx,%ecx
  1781. addl %ebx,%eax
  1782. vpxor %xmm8,%xmm2,%xmm2
  1783. addl 36(%rsp),%ebp
  1784. vaesenc %xmm14,%xmm12,%xmm12
  1785. vmovups -16(%r15),%xmm15
  1786. xorl %ecx,%edi
  1787. movl %eax,%esi
  1788. shldl $5,%eax,%eax
  1789. vpsrld $30,%xmm2,%xmm8
  1790. vmovdqa %xmm9,16(%rsp)
  1791. addl %edi,%ebp
  1792. xorl %ecx,%esi
  1793. shrdl $7,%ebx,%ebx
  1794. addl %eax,%ebp
  1795. vpslld $2,%xmm2,%xmm2
  1796. addl 40(%rsp),%edx
  1797. xorl %ebx,%esi
  1798. movl %ebp,%edi
  1799. shldl $5,%ebp,%ebp
  1800. addl %esi,%edx
  1801. xorl %ebx,%edi
  1802. shrdl $7,%eax,%eax
  1803. addl %ebp,%edx
  1804. vpor %xmm8,%xmm2,%xmm2
  1805. addl 44(%rsp),%ecx
  1806. xorl %eax,%edi
  1807. movl %edx,%esi
  1808. shldl $5,%edx,%edx
  1809. addl %edi,%ecx
  1810. vaesenc %xmm15,%xmm12,%xmm12
  1811. vmovups 0(%r15),%xmm14
  1812. xorl %eax,%esi
  1813. shrdl $7,%ebp,%ebp
  1814. addl %edx,%ecx
  1815. vpalignr $8,%xmm1,%xmm2,%xmm8
  1816. vpxor %xmm7,%xmm3,%xmm3
  1817. addl 48(%rsp),%ebx
  1818. xorl %ebp,%esi
  1819. movl %ecx,%edi
  1820. shldl $5,%ecx,%ecx
  1821. vpxor %xmm4,%xmm3,%xmm3
  1822. addl %esi,%ebx
  1823. xorl %ebp,%edi
  1824. vpaddd %xmm2,%xmm10,%xmm9
  1825. shrdl $7,%edx,%edx
  1826. addl %ecx,%ebx
  1827. vpxor %xmm8,%xmm3,%xmm3
  1828. addl 52(%rsp),%eax
  1829. xorl %edx,%edi
  1830. movl %ebx,%esi
  1831. shldl $5,%ebx,%ebx
  1832. vpsrld $30,%xmm3,%xmm8
  1833. vmovdqa %xmm9,32(%rsp)
  1834. addl %edi,%eax
  1835. xorl %edx,%esi
  1836. shrdl $7,%ecx,%ecx
  1837. addl %ebx,%eax
  1838. vpslld $2,%xmm3,%xmm3
  1839. addl 56(%rsp),%ebp
  1840. vaesenc %xmm14,%xmm12,%xmm12
  1841. vmovups 16(%r15),%xmm15
  1842. xorl %ecx,%esi
  1843. movl %eax,%edi
  1844. shldl $5,%eax,%eax
  1845. addl %esi,%ebp
  1846. xorl %ecx,%edi
  1847. shrdl $7,%ebx,%ebx
  1848. addl %eax,%ebp
  1849. vpor %xmm8,%xmm3,%xmm3
  1850. addl 60(%rsp),%edx
  1851. xorl %ebx,%edi
  1852. movl %ebp,%esi
  1853. shldl $5,%ebp,%ebp
  1854. addl %edi,%edx
  1855. xorl %ebx,%esi
  1856. shrdl $7,%eax,%eax
  1857. addl %ebp,%edx
  1858. vpalignr $8,%xmm2,%xmm3,%xmm8
  1859. vpxor %xmm0,%xmm4,%xmm4
  1860. addl 0(%rsp),%ecx
  1861. xorl %eax,%esi
  1862. movl %edx,%edi
  1863. shldl $5,%edx,%edx
  1864. vpxor %xmm5,%xmm4,%xmm4
  1865. addl %esi,%ecx
  1866. vaesenc %xmm15,%xmm12,%xmm12
  1867. vmovups 32(%r15),%xmm14
  1868. xorl %eax,%edi
  1869. vpaddd %xmm3,%xmm10,%xmm9
  1870. shrdl $7,%ebp,%ebp
  1871. addl %edx,%ecx
  1872. vpxor %xmm8,%xmm4,%xmm4
  1873. addl 4(%rsp),%ebx
  1874. xorl %ebp,%edi
  1875. movl %ecx,%esi
  1876. shldl $5,%ecx,%ecx
  1877. vpsrld $30,%xmm4,%xmm8
  1878. vmovdqa %xmm9,48(%rsp)
  1879. addl %edi,%ebx
  1880. xorl %ebp,%esi
  1881. shrdl $7,%edx,%edx
  1882. addl %ecx,%ebx
  1883. vpslld $2,%xmm4,%xmm4
  1884. addl 8(%rsp),%eax
  1885. xorl %edx,%esi
  1886. movl %ebx,%edi
  1887. shldl $5,%ebx,%ebx
  1888. addl %esi,%eax
  1889. xorl %edx,%edi
  1890. shrdl $7,%ecx,%ecx
  1891. addl %ebx,%eax
  1892. vpor %xmm8,%xmm4,%xmm4
  1893. addl 12(%rsp),%ebp
  1894. vaesenc %xmm14,%xmm12,%xmm12
  1895. vmovups 48(%r15),%xmm15
  1896. xorl %ecx,%edi
  1897. movl %eax,%esi
  1898. shldl $5,%eax,%eax
  1899. addl %edi,%ebp
  1900. xorl %ecx,%esi
  1901. shrdl $7,%ebx,%ebx
  1902. addl %eax,%ebp
  1903. vpalignr $8,%xmm3,%xmm4,%xmm8
  1904. vpxor %xmm1,%xmm5,%xmm5
  1905. addl 16(%rsp),%edx
  1906. xorl %ebx,%esi
  1907. movl %ebp,%edi
  1908. shldl $5,%ebp,%ebp
  1909. vpxor %xmm6,%xmm5,%xmm5
  1910. addl %esi,%edx
  1911. xorl %ebx,%edi
  1912. vpaddd %xmm4,%xmm10,%xmm9
  1913. shrdl $7,%eax,%eax
  1914. addl %ebp,%edx
  1915. vpxor %xmm8,%xmm5,%xmm5
  1916. addl 20(%rsp),%ecx
  1917. xorl %eax,%edi
  1918. movl %edx,%esi
  1919. shldl $5,%edx,%edx
  1920. vpsrld $30,%xmm5,%xmm8
  1921. vmovdqa %xmm9,0(%rsp)
  1922. addl %edi,%ecx
  1923. cmpl $11,%r8d
  1924. jb L$vaesenclast7
  1925. vaesenc %xmm15,%xmm12,%xmm12
  1926. vmovups 64(%r15),%xmm14
  1927. vaesenc %xmm14,%xmm12,%xmm12
  1928. vmovups 80(%r15),%xmm15
  1929. je L$vaesenclast7
  1930. vaesenc %xmm15,%xmm12,%xmm12
  1931. vmovups 96(%r15),%xmm14
  1932. vaesenc %xmm14,%xmm12,%xmm12
  1933. vmovups 112(%r15),%xmm15
  1934. L$vaesenclast7:
  1935. vaesenclast %xmm15,%xmm12,%xmm12
  1936. vmovups -112(%r15),%xmm15
  1937. vmovups 16-112(%r15),%xmm14
  1938. xorl %eax,%esi
  1939. shrdl $7,%ebp,%ebp
  1940. addl %edx,%ecx
  1941. vpslld $2,%xmm5,%xmm5
  1942. addl 24(%rsp),%ebx
  1943. xorl %ebp,%esi
  1944. movl %ecx,%edi
  1945. shldl $5,%ecx,%ecx
  1946. addl %esi,%ebx
  1947. xorl %ebp,%edi
  1948. shrdl $7,%edx,%edx
  1949. addl %ecx,%ebx
  1950. vpor %xmm8,%xmm5,%xmm5
  1951. addl 28(%rsp),%eax
  1952. shrdl $7,%ecx,%ecx
  1953. movl %ebx,%esi
  1954. xorl %edx,%edi
  1955. shldl $5,%ebx,%ebx
  1956. addl %edi,%eax
  1957. xorl %ecx,%esi
  1958. xorl %edx,%ecx
  1959. addl %ebx,%eax
  1960. vpalignr $8,%xmm4,%xmm5,%xmm8
  1961. vpxor %xmm2,%xmm6,%xmm6
  1962. addl 32(%rsp),%ebp
  1963. vmovdqu 32(%r12),%xmm13
  1964. vpxor %xmm15,%xmm13,%xmm13
  1965. vmovups %xmm12,16(%r13,%r12,1)
  1966. vpxor %xmm13,%xmm12,%xmm12
  1967. vaesenc %xmm14,%xmm12,%xmm12
  1968. vmovups -80(%r15),%xmm15
  1969. andl %ecx,%esi
  1970. xorl %edx,%ecx
  1971. shrdl $7,%ebx,%ebx
  1972. vpxor %xmm7,%xmm6,%xmm6
  1973. movl %eax,%edi
  1974. xorl %ecx,%esi
  1975. vpaddd %xmm5,%xmm10,%xmm9
  1976. shldl $5,%eax,%eax
  1977. addl %esi,%ebp
  1978. vpxor %xmm8,%xmm6,%xmm6
  1979. xorl %ebx,%edi
  1980. xorl %ecx,%ebx
  1981. addl %eax,%ebp
  1982. addl 36(%rsp),%edx
  1983. vpsrld $30,%xmm6,%xmm8
  1984. vmovdqa %xmm9,16(%rsp)
  1985. andl %ebx,%edi
  1986. xorl %ecx,%ebx
  1987. shrdl $7,%eax,%eax
  1988. movl %ebp,%esi
  1989. vpslld $2,%xmm6,%xmm6
  1990. xorl %ebx,%edi
  1991. shldl $5,%ebp,%ebp
  1992. addl %edi,%edx
  1993. vaesenc %xmm15,%xmm12,%xmm12
  1994. vmovups -64(%r15),%xmm14
  1995. xorl %eax,%esi
  1996. xorl %ebx,%eax
  1997. addl %ebp,%edx
  1998. addl 40(%rsp),%ecx
  1999. andl %eax,%esi
  2000. vpor %xmm8,%xmm6,%xmm6
  2001. xorl %ebx,%eax
  2002. shrdl $7,%ebp,%ebp
  2003. movl %edx,%edi
  2004. xorl %eax,%esi
  2005. shldl $5,%edx,%edx
  2006. addl %esi,%ecx
  2007. xorl %ebp,%edi
  2008. xorl %eax,%ebp
  2009. addl %edx,%ecx
  2010. addl 44(%rsp),%ebx
  2011. andl %ebp,%edi
  2012. xorl %eax,%ebp
  2013. shrdl $7,%edx,%edx
  2014. vaesenc %xmm14,%xmm12,%xmm12
  2015. vmovups -48(%r15),%xmm15
  2016. movl %ecx,%esi
  2017. xorl %ebp,%edi
  2018. shldl $5,%ecx,%ecx
  2019. addl %edi,%ebx
  2020. xorl %edx,%esi
  2021. xorl %ebp,%edx
  2022. addl %ecx,%ebx
  2023. vpalignr $8,%xmm5,%xmm6,%xmm8
  2024. vpxor %xmm3,%xmm7,%xmm7
  2025. addl 48(%rsp),%eax
  2026. andl %edx,%esi
  2027. xorl %ebp,%edx
  2028. shrdl $7,%ecx,%ecx
  2029. vpxor %xmm0,%xmm7,%xmm7
  2030. movl %ebx,%edi
  2031. xorl %edx,%esi
  2032. vpaddd %xmm6,%xmm10,%xmm9
  2033. vmovdqa 48(%r11),%xmm10
  2034. shldl $5,%ebx,%ebx
  2035. addl %esi,%eax
  2036. vpxor %xmm8,%xmm7,%xmm7
  2037. xorl %ecx,%edi
  2038. xorl %edx,%ecx
  2039. addl %ebx,%eax
  2040. addl 52(%rsp),%ebp
  2041. vaesenc %xmm15,%xmm12,%xmm12
  2042. vmovups -32(%r15),%xmm14
  2043. vpsrld $30,%xmm7,%xmm8
  2044. vmovdqa %xmm9,32(%rsp)
  2045. andl %ecx,%edi
  2046. xorl %edx,%ecx
  2047. shrdl $7,%ebx,%ebx
  2048. movl %eax,%esi
  2049. vpslld $2,%xmm7,%xmm7
  2050. xorl %ecx,%edi
  2051. shldl $5,%eax,%eax
  2052. addl %edi,%ebp
  2053. xorl %ebx,%esi
  2054. xorl %ecx,%ebx
  2055. addl %eax,%ebp
  2056. addl 56(%rsp),%edx
  2057. andl %ebx,%esi
  2058. vpor %xmm8,%xmm7,%xmm7
  2059. xorl %ecx,%ebx
  2060. shrdl $7,%eax,%eax
  2061. movl %ebp,%edi
  2062. xorl %ebx,%esi
  2063. shldl $5,%ebp,%ebp
  2064. addl %esi,%edx
  2065. vaesenc %xmm14,%xmm12,%xmm12
  2066. vmovups -16(%r15),%xmm15
  2067. xorl %eax,%edi
  2068. xorl %ebx,%eax
  2069. addl %ebp,%edx
  2070. addl 60(%rsp),%ecx
  2071. andl %eax,%edi
  2072. xorl %ebx,%eax
  2073. shrdl $7,%ebp,%ebp
  2074. movl %edx,%esi
  2075. xorl %eax,%edi
  2076. shldl $5,%edx,%edx
  2077. addl %edi,%ecx
  2078. xorl %ebp,%esi
  2079. xorl %eax,%ebp
  2080. addl %edx,%ecx
  2081. vpalignr $8,%xmm6,%xmm7,%xmm8
  2082. vpxor %xmm4,%xmm0,%xmm0
  2083. addl 0(%rsp),%ebx
  2084. andl %ebp,%esi
  2085. xorl %eax,%ebp
  2086. shrdl $7,%edx,%edx
  2087. vaesenc %xmm15,%xmm12,%xmm12
  2088. vmovups 0(%r15),%xmm14
  2089. vpxor %xmm1,%xmm0,%xmm0
  2090. movl %ecx,%edi
  2091. xorl %ebp,%esi
  2092. vpaddd %xmm7,%xmm10,%xmm9
  2093. shldl $5,%ecx,%ecx
  2094. addl %esi,%ebx
  2095. vpxor %xmm8,%xmm0,%xmm0
  2096. xorl %edx,%edi
  2097. xorl %ebp,%edx
  2098. addl %ecx,%ebx
  2099. addl 4(%rsp),%eax
  2100. vpsrld $30,%xmm0,%xmm8
  2101. vmovdqa %xmm9,48(%rsp)
  2102. andl %edx,%edi
  2103. xorl %ebp,%edx
  2104. shrdl $7,%ecx,%ecx
  2105. movl %ebx,%esi
  2106. vpslld $2,%xmm0,%xmm0
  2107. xorl %edx,%edi
  2108. shldl $5,%ebx,%ebx
  2109. addl %edi,%eax
  2110. xorl %ecx,%esi
  2111. xorl %edx,%ecx
  2112. addl %ebx,%eax
  2113. addl 8(%rsp),%ebp
  2114. vaesenc %xmm14,%xmm12,%xmm12
  2115. vmovups 16(%r15),%xmm15
  2116. andl %ecx,%esi
  2117. vpor %xmm8,%xmm0,%xmm0
  2118. xorl %edx,%ecx
  2119. shrdl $7,%ebx,%ebx
  2120. movl %eax,%edi
  2121. xorl %ecx,%esi
  2122. shldl $5,%eax,%eax
  2123. addl %esi,%ebp
  2124. xorl %ebx,%edi
  2125. xorl %ecx,%ebx
  2126. addl %eax,%ebp
  2127. addl 12(%rsp),%edx
  2128. andl %ebx,%edi
  2129. xorl %ecx,%ebx
  2130. shrdl $7,%eax,%eax
  2131. movl %ebp,%esi
  2132. xorl %ebx,%edi
  2133. shldl $5,%ebp,%ebp
  2134. addl %edi,%edx
  2135. vaesenc %xmm15,%xmm12,%xmm12
  2136. vmovups 32(%r15),%xmm14
  2137. xorl %eax,%esi
  2138. xorl %ebx,%eax
  2139. addl %ebp,%edx
  2140. vpalignr $8,%xmm7,%xmm0,%xmm8
  2141. vpxor %xmm5,%xmm1,%xmm1
  2142. addl 16(%rsp),%ecx
  2143. andl %eax,%esi
  2144. xorl %ebx,%eax
  2145. shrdl $7,%ebp,%ebp
  2146. vpxor %xmm2,%xmm1,%xmm1
  2147. movl %edx,%edi
  2148. xorl %eax,%esi
  2149. vpaddd %xmm0,%xmm10,%xmm9
  2150. shldl $5,%edx,%edx
  2151. addl %esi,%ecx
  2152. vpxor %xmm8,%xmm1,%xmm1
  2153. xorl %ebp,%edi
  2154. xorl %eax,%ebp
  2155. addl %edx,%ecx
  2156. addl 20(%rsp),%ebx
  2157. vpsrld $30,%xmm1,%xmm8
  2158. vmovdqa %xmm9,0(%rsp)
  2159. andl %ebp,%edi
  2160. xorl %eax,%ebp
  2161. shrdl $7,%edx,%edx
  2162. vaesenc %xmm14,%xmm12,%xmm12
  2163. vmovups 48(%r15),%xmm15
  2164. movl %ecx,%esi
  2165. vpslld $2,%xmm1,%xmm1
  2166. xorl %ebp,%edi
  2167. shldl $5,%ecx,%ecx
  2168. addl %edi,%ebx
  2169. xorl %edx,%esi
  2170. xorl %ebp,%edx
  2171. addl %ecx,%ebx
  2172. addl 24(%rsp),%eax
  2173. andl %edx,%esi
  2174. vpor %xmm8,%xmm1,%xmm1
  2175. xorl %ebp,%edx
  2176. shrdl $7,%ecx,%ecx
  2177. movl %ebx,%edi
  2178. xorl %edx,%esi
  2179. shldl $5,%ebx,%ebx
  2180. addl %esi,%eax
  2181. xorl %ecx,%edi
  2182. xorl %edx,%ecx
  2183. addl %ebx,%eax
  2184. addl 28(%rsp),%ebp
  2185. cmpl $11,%r8d
  2186. jb L$vaesenclast8
  2187. vaesenc %xmm15,%xmm12,%xmm12
  2188. vmovups 64(%r15),%xmm14
  2189. vaesenc %xmm14,%xmm12,%xmm12
  2190. vmovups 80(%r15),%xmm15
  2191. je L$vaesenclast8
  2192. vaesenc %xmm15,%xmm12,%xmm12
  2193. vmovups 96(%r15),%xmm14
  2194. vaesenc %xmm14,%xmm12,%xmm12
  2195. vmovups 112(%r15),%xmm15
  2196. L$vaesenclast8:
  2197. vaesenclast %xmm15,%xmm12,%xmm12
  2198. vmovups -112(%r15),%xmm15
  2199. vmovups 16-112(%r15),%xmm14
  2200. andl %ecx,%edi
  2201. xorl %edx,%ecx
  2202. shrdl $7,%ebx,%ebx
  2203. movl %eax,%esi
  2204. xorl %ecx,%edi
  2205. shldl $5,%eax,%eax
  2206. addl %edi,%ebp
  2207. xorl %ebx,%esi
  2208. xorl %ecx,%ebx
  2209. addl %eax,%ebp
  2210. vpalignr $8,%xmm0,%xmm1,%xmm8
  2211. vpxor %xmm6,%xmm2,%xmm2
  2212. addl 32(%rsp),%edx
  2213. andl %ebx,%esi
  2214. xorl %ecx,%ebx
  2215. shrdl $7,%eax,%eax
  2216. vpxor %xmm3,%xmm2,%xmm2
  2217. movl %ebp,%edi
  2218. xorl %ebx,%esi
  2219. vpaddd %xmm1,%xmm10,%xmm9
  2220. shldl $5,%ebp,%ebp
  2221. addl %esi,%edx
  2222. vmovdqu 48(%r12),%xmm13
  2223. vpxor %xmm15,%xmm13,%xmm13
  2224. vmovups %xmm12,32(%r13,%r12,1)
  2225. vpxor %xmm13,%xmm12,%xmm12
  2226. vaesenc %xmm14,%xmm12,%xmm12
  2227. vmovups -80(%r15),%xmm15
  2228. vpxor %xmm8,%xmm2,%xmm2
  2229. xorl %eax,%edi
  2230. xorl %ebx,%eax
  2231. addl %ebp,%edx
  2232. addl 36(%rsp),%ecx
  2233. vpsrld $30,%xmm2,%xmm8
  2234. vmovdqa %xmm9,16(%rsp)
  2235. andl %eax,%edi
  2236. xorl %ebx,%eax
  2237. shrdl $7,%ebp,%ebp
  2238. movl %edx,%esi
  2239. vpslld $2,%xmm2,%xmm2
  2240. xorl %eax,%edi
  2241. shldl $5,%edx,%edx
  2242. addl %edi,%ecx
  2243. xorl %ebp,%esi
  2244. xorl %eax,%ebp
  2245. addl %edx,%ecx
  2246. addl 40(%rsp),%ebx
  2247. andl %ebp,%esi
  2248. vpor %xmm8,%xmm2,%xmm2
  2249. xorl %eax,%ebp
  2250. shrdl $7,%edx,%edx
  2251. vaesenc %xmm15,%xmm12,%xmm12
  2252. vmovups -64(%r15),%xmm14
  2253. movl %ecx,%edi
  2254. xorl %ebp,%esi
  2255. shldl $5,%ecx,%ecx
  2256. addl %esi,%ebx
  2257. xorl %edx,%edi
  2258. xorl %ebp,%edx
  2259. addl %ecx,%ebx
  2260. addl 44(%rsp),%eax
  2261. andl %edx,%edi
  2262. xorl %ebp,%edx
  2263. shrdl $7,%ecx,%ecx
  2264. movl %ebx,%esi
  2265. xorl %edx,%edi
  2266. shldl $5,%ebx,%ebx
  2267. addl %edi,%eax
  2268. xorl %edx,%esi
  2269. addl %ebx,%eax
  2270. vpalignr $8,%xmm1,%xmm2,%xmm8
  2271. vpxor %xmm7,%xmm3,%xmm3
  2272. addl 48(%rsp),%ebp
  2273. vaesenc %xmm14,%xmm12,%xmm12
  2274. vmovups -48(%r15),%xmm15
  2275. xorl %ecx,%esi
  2276. movl %eax,%edi
  2277. shldl $5,%eax,%eax
  2278. vpxor %xmm4,%xmm3,%xmm3
  2279. addl %esi,%ebp
  2280. xorl %ecx,%edi
  2281. vpaddd %xmm2,%xmm10,%xmm9
  2282. shrdl $7,%ebx,%ebx
  2283. addl %eax,%ebp
  2284. vpxor %xmm8,%xmm3,%xmm3
  2285. addl 52(%rsp),%edx
  2286. xorl %ebx,%edi
  2287. movl %ebp,%esi
  2288. shldl $5,%ebp,%ebp
  2289. vpsrld $30,%xmm3,%xmm8
  2290. vmovdqa %xmm9,32(%rsp)
  2291. addl %edi,%edx
  2292. xorl %ebx,%esi
  2293. shrdl $7,%eax,%eax
  2294. addl %ebp,%edx
  2295. vpslld $2,%xmm3,%xmm3
  2296. addl 56(%rsp),%ecx
  2297. xorl %eax,%esi
  2298. movl %edx,%edi
  2299. shldl $5,%edx,%edx
  2300. addl %esi,%ecx
  2301. vaesenc %xmm15,%xmm12,%xmm12
  2302. vmovups -32(%r15),%xmm14
  2303. xorl %eax,%edi
  2304. shrdl $7,%ebp,%ebp
  2305. addl %edx,%ecx
  2306. vpor %xmm8,%xmm3,%xmm3
  2307. addl 60(%rsp),%ebx
  2308. xorl %ebp,%edi
  2309. movl %ecx,%esi
  2310. shldl $5,%ecx,%ecx
  2311. addl %edi,%ebx
  2312. xorl %ebp,%esi
  2313. shrdl $7,%edx,%edx
  2314. addl %ecx,%ebx
  2315. addl 0(%rsp),%eax
  2316. vpaddd %xmm3,%xmm10,%xmm9
  2317. xorl %edx,%esi
  2318. movl %ebx,%edi
  2319. shldl $5,%ebx,%ebx
  2320. addl %esi,%eax
  2321. vmovdqa %xmm9,48(%rsp)
  2322. xorl %edx,%edi
  2323. shrdl $7,%ecx,%ecx
  2324. addl %ebx,%eax
  2325. addl 4(%rsp),%ebp
  2326. vaesenc %xmm14,%xmm12,%xmm12
  2327. vmovups -16(%r15),%xmm15
  2328. xorl %ecx,%edi
  2329. movl %eax,%esi
  2330. shldl $5,%eax,%eax
  2331. addl %edi,%ebp
  2332. xorl %ecx,%esi
  2333. shrdl $7,%ebx,%ebx
  2334. addl %eax,%ebp
  2335. addl 8(%rsp),%edx
  2336. xorl %ebx,%esi
  2337. movl %ebp,%edi
  2338. shldl $5,%ebp,%ebp
  2339. addl %esi,%edx
  2340. xorl %ebx,%edi
  2341. shrdl $7,%eax,%eax
  2342. addl %ebp,%edx
  2343. addl 12(%rsp),%ecx
  2344. xorl %eax,%edi
  2345. movl %edx,%esi
  2346. shldl $5,%edx,%edx
  2347. addl %edi,%ecx
  2348. vaesenc %xmm15,%xmm12,%xmm12
  2349. vmovups 0(%r15),%xmm14
  2350. xorl %eax,%esi
  2351. shrdl $7,%ebp,%ebp
  2352. addl %edx,%ecx
  2353. cmpq %r14,%r10
  2354. je L$done_avx
  2355. vmovdqa 64(%r11),%xmm9
  2356. vmovdqa 0(%r11),%xmm10
  2357. vmovdqu 0(%r10),%xmm0
  2358. vmovdqu 16(%r10),%xmm1
  2359. vmovdqu 32(%r10),%xmm2
  2360. vmovdqu 48(%r10),%xmm3
  2361. vpshufb %xmm9,%xmm0,%xmm0
  2362. addq $64,%r10
  2363. addl 16(%rsp),%ebx
  2364. xorl %ebp,%esi
  2365. vpshufb %xmm9,%xmm1,%xmm1
  2366. movl %ecx,%edi
  2367. shldl $5,%ecx,%ecx
  2368. vpaddd %xmm10,%xmm0,%xmm8
  2369. addl %esi,%ebx
  2370. xorl %ebp,%edi
  2371. shrdl $7,%edx,%edx
  2372. addl %ecx,%ebx
  2373. vmovdqa %xmm8,0(%rsp)
  2374. addl 20(%rsp),%eax
  2375. xorl %edx,%edi
  2376. movl %ebx,%esi
  2377. shldl $5,%ebx,%ebx
  2378. addl %edi,%eax
  2379. xorl %edx,%esi
  2380. shrdl $7,%ecx,%ecx
  2381. addl %ebx,%eax
  2382. addl 24(%rsp),%ebp
  2383. vaesenc %xmm14,%xmm12,%xmm12
  2384. vmovups 16(%r15),%xmm15
  2385. xorl %ecx,%esi
  2386. movl %eax,%edi
  2387. shldl $5,%eax,%eax
  2388. addl %esi,%ebp
  2389. xorl %ecx,%edi
  2390. shrdl $7,%ebx,%ebx
  2391. addl %eax,%ebp
  2392. addl 28(%rsp),%edx
  2393. xorl %ebx,%edi
  2394. movl %ebp,%esi
  2395. shldl $5,%ebp,%ebp
  2396. addl %edi,%edx
  2397. xorl %ebx,%esi
  2398. shrdl $7,%eax,%eax
  2399. addl %ebp,%edx
  2400. addl 32(%rsp),%ecx
  2401. xorl %eax,%esi
  2402. vpshufb %xmm9,%xmm2,%xmm2
  2403. movl %edx,%edi
  2404. shldl $5,%edx,%edx
  2405. vpaddd %xmm10,%xmm1,%xmm8
  2406. addl %esi,%ecx
  2407. vaesenc %xmm15,%xmm12,%xmm12
  2408. vmovups 32(%r15),%xmm14
  2409. xorl %eax,%edi
  2410. shrdl $7,%ebp,%ebp
  2411. addl %edx,%ecx
  2412. vmovdqa %xmm8,16(%rsp)
  2413. addl 36(%rsp),%ebx
  2414. xorl %ebp,%edi
  2415. movl %ecx,%esi
  2416. shldl $5,%ecx,%ecx
  2417. addl %edi,%ebx
  2418. xorl %ebp,%esi
  2419. shrdl $7,%edx,%edx
  2420. addl %ecx,%ebx
  2421. addl 40(%rsp),%eax
  2422. xorl %edx,%esi
  2423. movl %ebx,%edi
  2424. shldl $5,%ebx,%ebx
  2425. addl %esi,%eax
  2426. xorl %edx,%edi
  2427. shrdl $7,%ecx,%ecx
  2428. addl %ebx,%eax
  2429. addl 44(%rsp),%ebp
  2430. vaesenc %xmm14,%xmm12,%xmm12
  2431. vmovups 48(%r15),%xmm15
  2432. xorl %ecx,%edi
  2433. movl %eax,%esi
  2434. shldl $5,%eax,%eax
  2435. addl %edi,%ebp
  2436. xorl %ecx,%esi
  2437. shrdl $7,%ebx,%ebx
  2438. addl %eax,%ebp
  2439. addl 48(%rsp),%edx
  2440. xorl %ebx,%esi
  2441. vpshufb %xmm9,%xmm3,%xmm3
  2442. movl %ebp,%edi
  2443. shldl $5,%ebp,%ebp
  2444. vpaddd %xmm10,%xmm2,%xmm8
  2445. addl %esi,%edx
  2446. xorl %ebx,%edi
  2447. shrdl $7,%eax,%eax
  2448. addl %ebp,%edx
  2449. vmovdqa %xmm8,32(%rsp)
  2450. addl 52(%rsp),%ecx
  2451. xorl %eax,%edi
  2452. movl %edx,%esi
  2453. shldl $5,%edx,%edx
  2454. addl %edi,%ecx
  2455. cmpl $11,%r8d
  2456. jb L$vaesenclast9
  2457. vaesenc %xmm15,%xmm12,%xmm12
  2458. vmovups 64(%r15),%xmm14
  2459. vaesenc %xmm14,%xmm12,%xmm12
  2460. vmovups 80(%r15),%xmm15
  2461. je L$vaesenclast9
  2462. vaesenc %xmm15,%xmm12,%xmm12
  2463. vmovups 96(%r15),%xmm14
  2464. vaesenc %xmm14,%xmm12,%xmm12
  2465. vmovups 112(%r15),%xmm15
  2466. L$vaesenclast9:
  2467. vaesenclast %xmm15,%xmm12,%xmm12
  2468. vmovups -112(%r15),%xmm15
  2469. vmovups 16-112(%r15),%xmm14
  2470. xorl %eax,%esi
  2471. shrdl $7,%ebp,%ebp
  2472. addl %edx,%ecx
  2473. addl 56(%rsp),%ebx
  2474. xorl %ebp,%esi
  2475. movl %ecx,%edi
  2476. shldl $5,%ecx,%ecx
  2477. addl %esi,%ebx
  2478. xorl %ebp,%edi
  2479. shrdl $7,%edx,%edx
  2480. addl %ecx,%ebx
  2481. addl 60(%rsp),%eax
  2482. xorl %edx,%edi
  2483. movl %ebx,%esi
  2484. shldl $5,%ebx,%ebx
  2485. addl %edi,%eax
  2486. shrdl $7,%ecx,%ecx
  2487. addl %ebx,%eax
  2488. vmovups %xmm12,48(%r13,%r12,1)
  2489. leaq 64(%r12),%r12
  2490. addl 0(%r9),%eax
  2491. addl 4(%r9),%esi
  2492. addl 8(%r9),%ecx
  2493. addl 12(%r9),%edx
  2494. movl %eax,0(%r9)
  2495. addl 16(%r9),%ebp
  2496. movl %esi,4(%r9)
  2497. movl %esi,%ebx
  2498. movl %ecx,8(%r9)
  2499. movl %ecx,%edi
  2500. movl %edx,12(%r9)
  2501. xorl %edx,%edi
  2502. movl %ebp,16(%r9)
  2503. andl %edi,%esi
  2504. jmp L$oop_avx
  2505. L$done_avx:
  2506. addl 16(%rsp),%ebx
  2507. xorl %ebp,%esi
  2508. movl %ecx,%edi
  2509. shldl $5,%ecx,%ecx
  2510. addl %esi,%ebx
  2511. xorl %ebp,%edi
  2512. shrdl $7,%edx,%edx
  2513. addl %ecx,%ebx
  2514. addl 20(%rsp),%eax
  2515. xorl %edx,%edi
  2516. movl %ebx,%esi
  2517. shldl $5,%ebx,%ebx
  2518. addl %edi,%eax
  2519. xorl %edx,%esi
  2520. shrdl $7,%ecx,%ecx
  2521. addl %ebx,%eax
  2522. addl 24(%rsp),%ebp
  2523. vaesenc %xmm14,%xmm12,%xmm12
  2524. vmovups 16(%r15),%xmm15
  2525. xorl %ecx,%esi
  2526. movl %eax,%edi
  2527. shldl $5,%eax,%eax
  2528. addl %esi,%ebp
  2529. xorl %ecx,%edi
  2530. shrdl $7,%ebx,%ebx
  2531. addl %eax,%ebp
  2532. addl 28(%rsp),%edx
  2533. xorl %ebx,%edi
  2534. movl %ebp,%esi
  2535. shldl $5,%ebp,%ebp
  2536. addl %edi,%edx
  2537. xorl %ebx,%esi
  2538. shrdl $7,%eax,%eax
  2539. addl %ebp,%edx
  2540. addl 32(%rsp),%ecx
  2541. xorl %eax,%esi
  2542. movl %edx,%edi
  2543. shldl $5,%edx,%edx
  2544. addl %esi,%ecx
  2545. vaesenc %xmm15,%xmm12,%xmm12
  2546. vmovups 32(%r15),%xmm14
  2547. xorl %eax,%edi
  2548. shrdl $7,%ebp,%ebp
  2549. addl %edx,%ecx
  2550. addl 36(%rsp),%ebx
  2551. xorl %ebp,%edi
  2552. movl %ecx,%esi
  2553. shldl $5,%ecx,%ecx
  2554. addl %edi,%ebx
  2555. xorl %ebp,%esi
  2556. shrdl $7,%edx,%edx
  2557. addl %ecx,%ebx
  2558. addl 40(%rsp),%eax
  2559. xorl %edx,%esi
  2560. movl %ebx,%edi
  2561. shldl $5,%ebx,%ebx
  2562. addl %esi,%eax
  2563. xorl %edx,%edi
  2564. shrdl $7,%ecx,%ecx
  2565. addl %ebx,%eax
  2566. addl 44(%rsp),%ebp
  2567. vaesenc %xmm14,%xmm12,%xmm12
  2568. vmovups 48(%r15),%xmm15
  2569. xorl %ecx,%edi
  2570. movl %eax,%esi
  2571. shldl $5,%eax,%eax
  2572. addl %edi,%ebp
  2573. xorl %ecx,%esi
  2574. shrdl $7,%ebx,%ebx
  2575. addl %eax,%ebp
  2576. addl 48(%rsp),%edx
  2577. xorl %ebx,%esi
  2578. movl %ebp,%edi
  2579. shldl $5,%ebp,%ebp
  2580. addl %esi,%edx
  2581. xorl %ebx,%edi
  2582. shrdl $7,%eax,%eax
  2583. addl %ebp,%edx
  2584. addl 52(%rsp),%ecx
  2585. xorl %eax,%edi
  2586. movl %edx,%esi
  2587. shldl $5,%edx,%edx
  2588. addl %edi,%ecx
  2589. cmpl $11,%r8d
  2590. jb L$vaesenclast10
  2591. vaesenc %xmm15,%xmm12,%xmm12
  2592. vmovups 64(%r15),%xmm14
  2593. vaesenc %xmm14,%xmm12,%xmm12
  2594. vmovups 80(%r15),%xmm15
  2595. je L$vaesenclast10
  2596. vaesenc %xmm15,%xmm12,%xmm12
  2597. vmovups 96(%r15),%xmm14
  2598. vaesenc %xmm14,%xmm12,%xmm12
  2599. vmovups 112(%r15),%xmm15
  2600. L$vaesenclast10:
  2601. vaesenclast %xmm15,%xmm12,%xmm12
  2602. vmovups -112(%r15),%xmm15
  2603. vmovups 16-112(%r15),%xmm14
  2604. xorl %eax,%esi
  2605. shrdl $7,%ebp,%ebp
  2606. addl %edx,%ecx
  2607. addl 56(%rsp),%ebx
  2608. xorl %ebp,%esi
  2609. movl %ecx,%edi
  2610. shldl $5,%ecx,%ecx
  2611. addl %esi,%ebx
  2612. xorl %ebp,%edi
  2613. shrdl $7,%edx,%edx
  2614. addl %ecx,%ebx
  2615. addl 60(%rsp),%eax
  2616. xorl %edx,%edi
  2617. movl %ebx,%esi
  2618. shldl $5,%ebx,%ebx
  2619. addl %edi,%eax
  2620. shrdl $7,%ecx,%ecx
  2621. addl %ebx,%eax
  2622. vmovups %xmm12,48(%r13,%r12,1)
  2623. movq 88(%rsp),%r8
  2624. addl 0(%r9),%eax
  2625. addl 4(%r9),%esi
  2626. addl 8(%r9),%ecx
  2627. movl %eax,0(%r9)
  2628. addl 12(%r9),%edx
  2629. movl %esi,4(%r9)
  2630. addl 16(%r9),%ebp
  2631. movl %ecx,8(%r9)
  2632. movl %edx,12(%r9)
  2633. movl %ebp,16(%r9)
  2634. vmovups %xmm12,(%r8)
  2635. vzeroall
  2636. leaq 104(%rsp),%rsi
  2637. movq 0(%rsi),%r15
  2638. movq 8(%rsi),%r14
  2639. movq 16(%rsi),%r13
  2640. movq 24(%rsi),%r12
  2641. movq 32(%rsi),%rbp
  2642. movq 40(%rsi),%rbx
  2643. leaq 48(%rsi),%rsp
  2644. L$epilogue_avx:
  2645. .byte 0xf3,0xc3
  2646. .p2align 6
  2647. K_XX_XX:
  2648. .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
  2649. .long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
  2650. .long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
  2651. .long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
  2652. .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
  2653. .byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
  2654. .byte 65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
  2655. .p2align 6
  2656. .p2align 5
  2657. aesni_cbc_sha1_enc_shaext:
  2658. movq 8(%rsp),%r10
  2659. movdqu (%r9),%xmm8
  2660. movd 16(%r9),%xmm9
  2661. movdqa K_XX_XX+80(%rip),%xmm7
  2662. movl 240(%rcx),%r11d
  2663. subq %rdi,%rsi
  2664. movups (%rcx),%xmm15
  2665. movups (%r8),%xmm2
  2666. movups 16(%rcx),%xmm0
  2667. leaq 112(%rcx),%rcx
  2668. pshufd $27,%xmm8,%xmm8
  2669. pshufd $27,%xmm9,%xmm9
  2670. jmp L$oop_shaext
  2671. .p2align 4
  2672. L$oop_shaext:
  2673. movups 0(%rdi),%xmm14
  2674. xorps %xmm15,%xmm14
  2675. xorps %xmm14,%xmm2
  2676. movups -80(%rcx),%xmm1
  2677. .byte 102,15,56,220,208
  2678. movdqu (%r10),%xmm3
  2679. movdqa %xmm9,%xmm12
  2680. .byte 102,15,56,0,223
  2681. movdqu 16(%r10),%xmm4
  2682. movdqa %xmm8,%xmm11
  2683. movups -64(%rcx),%xmm0
  2684. .byte 102,15,56,220,209
  2685. .byte 102,15,56,0,231
  2686. paddd %xmm3,%xmm9
  2687. movdqu 32(%r10),%xmm5
  2688. leaq 64(%r10),%r10
  2689. pxor %xmm12,%xmm3
  2690. movups -48(%rcx),%xmm1
  2691. .byte 102,15,56,220,208
  2692. pxor %xmm12,%xmm3
  2693. movdqa %xmm8,%xmm10
  2694. .byte 102,15,56,0,239
  2695. .byte 69,15,58,204,193,0
  2696. .byte 68,15,56,200,212
  2697. movups -32(%rcx),%xmm0
  2698. .byte 102,15,56,220,209
  2699. .byte 15,56,201,220
  2700. movdqu -16(%r10),%xmm6
  2701. movdqa %xmm8,%xmm9
  2702. .byte 102,15,56,0,247
  2703. movups -16(%rcx),%xmm1
  2704. .byte 102,15,56,220,208
  2705. .byte 69,15,58,204,194,0
  2706. .byte 68,15,56,200,205
  2707. pxor %xmm5,%xmm3
  2708. .byte 15,56,201,229
  2709. movups 0(%rcx),%xmm0
  2710. .byte 102,15,56,220,209
  2711. movdqa %xmm8,%xmm10
  2712. .byte 69,15,58,204,193,0
  2713. .byte 68,15,56,200,214
  2714. movups 16(%rcx),%xmm1
  2715. .byte 102,15,56,220,208
  2716. .byte 15,56,202,222
  2717. pxor %xmm6,%xmm4
  2718. .byte 15,56,201,238
  2719. movups 32(%rcx),%xmm0
  2720. .byte 102,15,56,220,209
  2721. movdqa %xmm8,%xmm9
  2722. .byte 69,15,58,204,194,0
  2723. .byte 68,15,56,200,203
  2724. movups 48(%rcx),%xmm1
  2725. .byte 102,15,56,220,208
  2726. .byte 15,56,202,227
  2727. pxor %xmm3,%xmm5
  2728. .byte 15,56,201,243
  2729. cmpl $11,%r11d
  2730. jb L$aesenclast11
  2731. movups 64(%rcx),%xmm0
  2732. .byte 102,15,56,220,209
  2733. movups 80(%rcx),%xmm1
  2734. .byte 102,15,56,220,208
  2735. je L$aesenclast11
  2736. movups 96(%rcx),%xmm0
  2737. .byte 102,15,56,220,209
  2738. movups 112(%rcx),%xmm1
  2739. .byte 102,15,56,220,208
  2740. L$aesenclast11:
  2741. .byte 102,15,56,221,209
  2742. movups 16-112(%rcx),%xmm0
  2743. movdqa %xmm8,%xmm10
  2744. .byte 69,15,58,204,193,0
  2745. .byte 68,15,56,200,212
  2746. movups 16(%rdi),%xmm14
  2747. xorps %xmm15,%xmm14
  2748. movups %xmm2,0(%rsi,%rdi,1)
  2749. xorps %xmm14,%xmm2
  2750. movups -80(%rcx),%xmm1
  2751. .byte 102,15,56,220,208
  2752. .byte 15,56,202,236
  2753. pxor %xmm4,%xmm6
  2754. .byte 15,56,201,220
  2755. movups -64(%rcx),%xmm0
  2756. .byte 102,15,56,220,209
  2757. movdqa %xmm8,%xmm9
  2758. .byte 69,15,58,204,194,1
  2759. .byte 68,15,56,200,205
  2760. movups -48(%rcx),%xmm1
  2761. .byte 102,15,56,220,208
  2762. .byte 15,56,202,245
  2763. pxor %xmm5,%xmm3
  2764. .byte 15,56,201,229
  2765. movups -32(%rcx),%xmm0
  2766. .byte 102,15,56,220,209
  2767. movdqa %xmm8,%xmm10
  2768. .byte 69,15,58,204,193,1
  2769. .byte 68,15,56,200,214
  2770. movups -16(%rcx),%xmm1
  2771. .byte 102,15,56,220,208
  2772. .byte 15,56,202,222
  2773. pxor %xmm6,%xmm4
  2774. .byte 15,56,201,238
  2775. movups 0(%rcx),%xmm0
  2776. .byte 102,15,56,220,209
  2777. movdqa %xmm8,%xmm9
  2778. .byte 69,15,58,204,194,1
  2779. .byte 68,15,56,200,203
  2780. movups 16(%rcx),%xmm1
  2781. .byte 102,15,56,220,208
  2782. .byte 15,56,202,227
  2783. pxor %xmm3,%xmm5
  2784. .byte 15,56,201,243
  2785. movups 32(%rcx),%xmm0
  2786. .byte 102,15,56,220,209
  2787. movdqa %xmm8,%xmm10
  2788. .byte 69,15,58,204,193,1
  2789. .byte 68,15,56,200,212
  2790. movups 48(%rcx),%xmm1
  2791. .byte 102,15,56,220,208
  2792. .byte 15,56,202,236
  2793. pxor %xmm4,%xmm6
  2794. .byte 15,56,201,220
  2795. cmpl $11,%r11d
  2796. jb L$aesenclast12
  2797. movups 64(%rcx),%xmm0
  2798. .byte 102,15,56,220,209
  2799. movups 80(%rcx),%xmm1
  2800. .byte 102,15,56,220,208
  2801. je L$aesenclast12
  2802. movups 96(%rcx),%xmm0
  2803. .byte 102,15,56,220,209
  2804. movups 112(%rcx),%xmm1
  2805. .byte 102,15,56,220,208
  2806. L$aesenclast12:
  2807. .byte 102,15,56,221,209
  2808. movups 16-112(%rcx),%xmm0
  2809. movdqa %xmm8,%xmm9
  2810. .byte 69,15,58,204,194,1
  2811. .byte 68,15,56,200,205
  2812. movups 32(%rdi),%xmm14
  2813. xorps %xmm15,%xmm14
  2814. movups %xmm2,16(%rsi,%rdi,1)
  2815. xorps %xmm14,%xmm2
  2816. movups -80(%rcx),%xmm1
  2817. .byte 102,15,56,220,208
  2818. .byte 15,56,202,245
  2819. pxor %xmm5,%xmm3
  2820. .byte 15,56,201,229
  2821. movups -64(%rcx),%xmm0
  2822. .byte 102,15,56,220,209
  2823. movdqa %xmm8,%xmm10
  2824. .byte 69,15,58,204,193,2
  2825. .byte 68,15,56,200,214
  2826. movups -48(%rcx),%xmm1
  2827. .byte 102,15,56,220,208
  2828. .byte 15,56,202,222
  2829. pxor %xmm6,%xmm4
  2830. .byte 15,56,201,238
  2831. movups -32(%rcx),%xmm0
  2832. .byte 102,15,56,220,209
  2833. movdqa %xmm8,%xmm9
  2834. .byte 69,15,58,204,194,2
  2835. .byte 68,15,56,200,203
  2836. movups -16(%rcx),%xmm1
  2837. .byte 102,15,56,220,208
  2838. .byte 15,56,202,227
  2839. pxor %xmm3,%xmm5
  2840. .byte 15,56,201,243
  2841. movups 0(%rcx),%xmm0
  2842. .byte 102,15,56,220,209
  2843. movdqa %xmm8,%xmm10
  2844. .byte 69,15,58,204,193,2
  2845. .byte 68,15,56,200,212
  2846. movups 16(%rcx),%xmm1
  2847. .byte 102,15,56,220,208
  2848. .byte 15,56,202,236
  2849. pxor %xmm4,%xmm6
  2850. .byte 15,56,201,220
  2851. movups 32(%rcx),%xmm0
  2852. .byte 102,15,56,220,209
  2853. movdqa %xmm8,%xmm9
  2854. .byte 69,15,58,204,194,2
  2855. .byte 68,15,56,200,205
  2856. movups 48(%rcx),%xmm1
  2857. .byte 102,15,56,220,208
  2858. .byte 15,56,202,245
  2859. pxor %xmm5,%xmm3
  2860. .byte 15,56,201,229
  2861. cmpl $11,%r11d
  2862. jb L$aesenclast13
  2863. movups 64(%rcx),%xmm0
  2864. .byte 102,15,56,220,209
  2865. movups 80(%rcx),%xmm1
  2866. .byte 102,15,56,220,208
  2867. je L$aesenclast13
  2868. movups 96(%rcx),%xmm0
  2869. .byte 102,15,56,220,209
  2870. movups 112(%rcx),%xmm1
  2871. .byte 102,15,56,220,208
  2872. L$aesenclast13:
  2873. .byte 102,15,56,221,209
  2874. movups 16-112(%rcx),%xmm0
  2875. movdqa %xmm8,%xmm10
  2876. .byte 69,15,58,204,193,2
  2877. .byte 68,15,56,200,214
  2878. movups 48(%rdi),%xmm14
  2879. xorps %xmm15,%xmm14
  2880. movups %xmm2,32(%rsi,%rdi,1)
  2881. xorps %xmm14,%xmm2
  2882. movups -80(%rcx),%xmm1
  2883. .byte 102,15,56,220,208
  2884. .byte 15,56,202,222
  2885. pxor %xmm6,%xmm4
  2886. .byte 15,56,201,238
  2887. movups -64(%rcx),%xmm0
  2888. .byte 102,15,56,220,209
  2889. movdqa %xmm8,%xmm9
  2890. .byte 69,15,58,204,194,3
  2891. .byte 68,15,56,200,203
  2892. movups -48(%rcx),%xmm1
  2893. .byte 102,15,56,220,208
  2894. .byte 15,56,202,227
  2895. pxor %xmm3,%xmm5
  2896. .byte 15,56,201,243
  2897. movups -32(%rcx),%xmm0
  2898. .byte 102,15,56,220,209
  2899. movdqa %xmm8,%xmm10
  2900. .byte 69,15,58,204,193,3
  2901. .byte 68,15,56,200,212
  2902. .byte 15,56,202,236
  2903. pxor %xmm4,%xmm6
  2904. movups -16(%rcx),%xmm1
  2905. .byte 102,15,56,220,208
  2906. movdqa %xmm8,%xmm9
  2907. .byte 69,15,58,204,194,3
  2908. .byte 68,15,56,200,205
  2909. .byte 15,56,202,245
  2910. movups 0(%rcx),%xmm0
  2911. .byte 102,15,56,220,209
  2912. movdqa %xmm12,%xmm5
  2913. movdqa %xmm8,%xmm10
  2914. .byte 69,15,58,204,193,3
  2915. .byte 68,15,56,200,214
  2916. movups 16(%rcx),%xmm1
  2917. .byte 102,15,56,220,208
  2918. movdqa %xmm8,%xmm9
  2919. .byte 69,15,58,204,194,3
  2920. .byte 68,15,56,200,205
  2921. movups 32(%rcx),%xmm0
  2922. .byte 102,15,56,220,209
  2923. movups 48(%rcx),%xmm1
  2924. .byte 102,15,56,220,208
  2925. cmpl $11,%r11d
  2926. jb L$aesenclast14
  2927. movups 64(%rcx),%xmm0
  2928. .byte 102,15,56,220,209
  2929. movups 80(%rcx),%xmm1
  2930. .byte 102,15,56,220,208
  2931. je L$aesenclast14
  2932. movups 96(%rcx),%xmm0
  2933. .byte 102,15,56,220,209
  2934. movups 112(%rcx),%xmm1
  2935. .byte 102,15,56,220,208
  2936. L$aesenclast14:
  2937. .byte 102,15,56,221,209
  2938. movups 16-112(%rcx),%xmm0
  2939. decq %rdx
  2940. paddd %xmm11,%xmm8
  2941. movups %xmm2,48(%rsi,%rdi,1)
  2942. leaq 64(%rdi),%rdi
  2943. jnz L$oop_shaext
  2944. pshufd $27,%xmm8,%xmm8
  2945. pshufd $27,%xmm9,%xmm9
  2946. movups %xmm2,(%r8)
  2947. movdqu %xmm8,(%r9)
  2948. movd %xmm9,16(%r9)
  2949. .byte 0xf3,0xc3