hschumann2/TempleOS-Source-Code
0838
1 2asm {3_MEMSET::4 PUSH RBP5 MOV RBP,RSP6 PUSH RDI7 CLD8 MOV RDI,U64 SF_ARG1[RBP]9 MOV RAX,U64 SF_ARG2[RBP]10 MOV RCX,U64 SF_ARG3[RBP]11 REP_STOSB12 MOV RAX,RDI13 POP RDI14 POP RBP15 RET1 2416_MEMSET_U16::17 PUSH RBP18 MOV RBP,RSP19 PUSH RDI20 CLD21 MOV RDI,U64 SF_ARG1[RBP]22 MOV RAX,U64 SF_ARG2[RBP]23 MOV RCX,U64 SF_ARG3[RBP]24 REP_STOSW25 MOV RAX,RDI26 POP RDI27 POP RBP28 RET1 2429_MEMSET_U32::30 PUSH RBP31 MOV RBP,RSP32 PUSH RDI33 CLD34 MOV RDI,U64 SF_ARG1[RBP]35 MOV RAX,U64 SF_ARG2[RBP]36 MOV RCX,U64 SF_ARG3[RBP]37 REP_STOSD38 MOV RAX,RDI39 POP RDI40 POP RBP41 RET1 2442_MEMSET_I64::43 PUSH RBP44 MOV RBP,RSP45 PUSH RDI46 CLD47 MOV RDI,U64 SF_ARG1[RBP]48 MOV RAX,U64 SF_ARG2[RBP]49 MOV RCX,U64 SF_ARG3[RBP]50 REP_STOSQ51 MOV RAX,RDI52 POP RDI53 POP RBP54 RET1 2455_MEMCPY::56 PUSH RBP57 MOV RBP,RSP58 PUSH RSI59 PUSH RDI60 CLD61 MOV RDI,U64 SF_ARG1[RBP]62 MOV RSI,U64 SF_ARG2[RBP]63 MOV RCX,U64 SF_ARG3[RBP]64 REP_MOVSB65 MOV RAX,RDI66 POP RDI67 POP RSI68 POP RBP69 RET1 2470_MEMCMP::71 PUSH RBP72 MOV RBP,RSP73 PUSH RSI74 PUSH RDI75 CLD76 MOV RSI,U64 SF_ARG1[RBP]77 MOV RDI,U64 SF_ARG2[RBP]78 MOV RCX,U64 SF_ARG3[RBP]79 XOR RAX,RAX80 REPE_CMPSB81 JZ @@0582 MOV AL,183 JA @@0584 MOV RAX,-185@@05: POP RDI86 POP RSI87 POP RBP88 RET1 2489_BEQU::90 PUSH RBP91 MOV RBP,RSP92 XOR RAX,RAX93 MOV RDX,U64 SF_ARG3[RBP]94 MOV RBX,U64 SF_ARG1[RBP]95 MOV RCX,U64 SF_ARG2[RBP]96 TEST RDX,RDX97 JZ @@598 BTS U64 [RBX],RCX99 JMP @@10100@@5: BTR U64 [RBX],RCX101@@10: ADC AL,0102 POP RBP103 RET1 24104_LBEQU::105 PUSH RBP106 MOV RBP,RSP107 XOR RAX,RAX108 MOV RDX,U64 SF_ARG3[RBP]109 MOV RBX,U64 SF_ARG1[RBP]110 MOV RCX,U64 SF_ARG2[RBP]111 TEST RDX,RDX112 JZ @@5113 LOCK114 BTS U64 [RBX],RCX115 JMP @@10116@@5: LOCK117 BTR U64 [RBX],RCX118@@10: ADC AL,0119 POP RBP120 RET1 24121_CLAMP_I64::122 PUSH RBP123 MOV RBP,RSP124 MOV RAX,U64 SF_ARG1[RBP]125 MOV RCX,U64 SF_ARG2[RBP]126 MOV RDX,U64 SF_ARG3[RBP]127 CMP RAX,RCX128 CMOVL RAX,RCX129 CMP RAX,RDX130 CMOVG RAX,RDX131 POP RBP132 RET1 24133_CLAMP_U64::134 PUSH RBP135 MOV RBP,RSP136 MOV RAX,U64 SF_ARG1[RBP]137 MOV RCX,U64 SF_ARG2[RBP]138 MOV RDX,U64 SF_ARG3[RBP]139 CMP RAX,RCX140 CMOVB RAX,RCX141 CMP RAX,RDX142 CMOVA RAX,RDX143 POP RBP144 RET1 24145_CALL::146 PUSH RBP147 MOV RBP,RSP148 MOV RAX,U64 SF_ARG1[RBP]149 TEST RAX,RAX150 JZ @@05151 CALL RAX152@@05: POP RBP153 RET1 8154_BIT_FIELD_OR_U32::155 PUSH RBP156 MOV RBP,RSP157 MOV RBX,U64 SF_ARG2[RBP]158 SHR RBX,3159 ADD RBX,U64 SF_ARG1[RBP]160 MOV RAX,U64 SF_ARG3[RBP]161 MOV RCX,U64 SF_ARG2[RBP]162 AND CL,7163 SHL RAX,CL164 OR U64 [RBX],RAX165 POP RBP166 RET1 24167_BIT_FIELD_EXT_U32::168 PUSH RBP169 MOV RBP,RSP170 MOV RBX,U64 SF_ARG2[RBP]171 MOV RCX,RBX172 SHR RBX,3173 ADD RBX,U64 SF_ARG1[RBP]174 MOV RDX,U64 [RBX]175 AND CL,7176 SHR RDX,CL177 MOV RCX,U64 SF_ARG3[RBP]178 MOV RAX,1179 SHL RAX,CL180 DEC RAX181 AND RAX,RDX182 POP RBP183 RET1 24184_XCHG_I64::185 PUSH RBP186 MOV RBP,RSP187 MOV RDX,U64 SF_ARG1[RBP]188 MOV RAX,U64 SF_ARG2[RBP]189 XCHG U64 [RDX],RAX190 POP RBP191 RET1 16192_XCHG_U32::193 PUSH RBP194 MOV RBP,RSP195 MOV RDX,U64 SF_ARG1[RBP]196 MOV EAX,U32 SF_ARG2[RBP]197 XCHG U32 [RDX],EAX198 POP RBP199 RET1 16200_XCHG_U16::201 PUSH RBP202 MOV RBP,RSP203 MOV RDX,U64 SF_ARG1[RBP]204 MOVZX RAX,U16 SF_ARG2[RBP]205 XCHG U16 [RDX],AX206 POP RBP207 RET1 16208_XCHG_U8::209 PUSH RBP210 MOV RBP,RSP211 MOV RDX,U64 SF_ARG1[RBP]212 MOVZX RAX,U8 SF_ARG2[RBP]213 XCHG U8 [RDX],AL214 POP RBP215 RET1 16216 217_LXCHG_I64::218 PUSH RBP219 MOV RBP,RSP220 MOV RDX,U64 SF_ARG1[RBP]221 MOV RAX,U64 SF_ARG2[RBP]222 LOCK223 XCHG U64 [RDX],RAX224 POP RBP225 RET1 16226_LXCHG_U32::227 PUSH RBP228 MOV RBP,RSP229 MOV RDX,U64 SF_ARG1[RBP]230 MOV EAX,U32 SF_ARG2[RBP]231 LOCK232 XCHG U32 [RDX],EAX233 POP RBP234 RET1 16235_LXCHG_U16::236 PUSH RBP237 MOV RBP,RSP238 MOV RDX,U64 SF_ARG1[RBP]239 MOVZX RAX,U16 SF_ARG2[RBP]240 LOCK241 XCHG U16 [RDX],AX242 POP RBP243 RET1 16244_LXCHG_U8::245 PUSH RBP246 MOV RBP,RSP247 MOV RDX,U64 SF_ARG1[RBP]248 MOVZX RAX,U8 SF_ARG2[RBP]249 LOCK250 XCHG U8 [RDX],AL251 POP RBP252 RET1 16253_REP_IN_U32::254 PUSH RBP255 MOV RBP,RSP256 PUSH RDI257 MOV RDI,U64 SF_ARG1[RBP]258 MOV RDX,U64 SF_ARG3[RBP]259 MOV RCX,U64 SF_ARG2[RBP]260 REP_INSD261 POP RDI262 POP RBP263 RET1 24264_REP_IN_U16::265 PUSH RBP266 MOV RBP,RSP267 PUSH RDI268 MOV RDI,U64 SF_ARG1[RBP]269 MOV RDX,U64 SF_ARG3[RBP]270 MOV RCX,U64 SF_ARG2[RBP]271 REP_INSW272 POP RDI273 POP RBP274 RET1 24275_REP_IN_U8::276 PUSH RBP277 MOV RBP,RSP278 PUSH RDI279 MOV RDI,U64 SF_ARG1[RBP]280 MOV RDX,U64 SF_ARG3[RBP]281 MOV RCX,U64 SF_ARG2[RBP]282 REP_INSB283 POP RDI284 POP RBP285 RET1 24286_REP_OUT_U32::287 PUSH RBP288 MOV RBP,RSP289 PUSH RSI290 MOV RSI,U64 SF_ARG1[RBP]291 MOV RDX,U64 SF_ARG3[RBP]292 MOV RCX,U64 SF_ARG2[RBP]293 REP_OUTSD294 POP RSI295 POP RBP296 RET1 24297_REP_OUT_U16::298 PUSH RBP299 MOV RBP,RSP300 PUSH RSI301 MOV RSI,U64 SF_ARG1[RBP]302 MOV RDX,U64 SF_ARG3[RBP]303 MOV RCX,U64 SF_ARG2[RBP]304 REP_OUTSW305 POP RSI306 POP RBP307 RET1 24308_REP_OUT_U8::309 PUSH RBP310 MOV RBP,RSP311 PUSH RSI312 MOV RSI,U64 SF_ARG1[RBP]313 MOV RDX,U64 SF_ARG3[RBP]314 MOV RCX,U64 SF_ARG2[RBP]315 REP_OUTSB316 POP RSI317 POP RBP318 RET1 24319_CPUID::320 PUSH RBP321 MOV RBP,RSP322 PUSH RSI323 MOV RAX,U64 SF_ARG1[RBP]324 CPUID325 MOV RSI,U64 SF_ARG2[RBP]326 MOV U64 [RSI],RAX327 MOV U64 8[RSI],RBX328 MOV U64 16[RSI],RCX329 MOV U64 24[RSI],RDX330 POP RSI331 POP RBP332 RET1 16333_CALL_IND:: //See _LAST_FUN334 PUSH RBP335 MOV RBP,RSP336 PUSH RSI337 PUSH RDI338 MOV RDX,U64 SF_ARG1[RBP]339 MOV RCX,U64 SF_ARG2[RBP] //argc340 LEA RSI,U64 SF_ARG3[RBP] //argv341 SHL RCX,3342 SUB RSP,RCX343 MOV RDI,RSP344 REP_MOVSB345 TEST RDX,RDX346 JZ @@05347 348 CALL RDX349 POP RDI350 POP RSI351 POP RBP352 RET353 354@@05: MOV RCX,U64 SF_ARG2[RBP] //argc355 SHL RCX,3356 ADD RSP,RCX357 XOR RAX,RAX358 POP RDI359 POP RSI360 POP RBP361 RET362_CALLEXTNUM::363 PUSH RBP364 MOV RBP,RSP365 PUSH RSI366 PUSH RDI367 MOV RDX,U64 SF_ARG1[RBP]368 MOV RCX,U64 SF_ARG2[RBP] //argc369 LEA RSI,U64 SF_ARG3[RBP] //argv370 SHL RCX,3371 SUB RSP,RCX372 MOV RDI,RSP373 REP_MOVSB374 MOV RAX,U64 [SYS_EXTERN_TABLE]375 MOV RAX,U64 [RAX+RDX*8]376 TEST RAX,RAX377 JZ @@05378 379 CALL RAX380 POP RDI381 POP RSI382 POP RBP383 RET384 385@@05: MOV RCX,U64 SF_ARG2[RBP] //argc386 SHL RCX,3387 ADD RSP,RCX388 POP RDI389 POP RSI390 POP RBP391 RET392_CALLEXTSTR::393 PUSH RBP394 MOV RBP,RSP395 PUSH RSI396 PUSH RDI397 MOV RCX,U64 SF_ARG2[RBP] //argc398 LEA RSI,U64 SF_ARG3[RBP] //argv399 SHL RCX,3400 SUB RSP,RCX401 MOV RDI,RSP402 REP_MOVSB403 MOV RSI,U64 SF_ARG1[RBP]404 405 MOV RCX,1406 XOR RAX,RAX407 MOV RDI,U64 FS:CTask.hash_table[RAX]408 MOV RBX,HTT_FUN|HTT_EXPORT_SYS_SYM409 CALL SYS_HASH_FIND410 JZ @@15411 412 TEST U32 CHash.type[RAX],HTT_FUN413 JZ @@05414 MOV RAX,U64 CHashFun.exe_addr[RAX]415 JMP @@10416@@05: MOV RAX,U64 CHashExport.val[RAX]417@@10: TEST RAX,RAX418 JZ @@15419 420 CALL RAX421 POP RDI422 POP RSI423 POP RBP424 RET425 426@@15: MOV RCX,U64 SF_ARG2[RBP] //argc427 SHL RCX,3428 ADD RSP,RCX429 POP RDI430 POP RSI431 POP RBP432 RET433SET_GS_BASE::434 PUSH RAX435 PUSH RCX436 PUSH RDX437 MOV RDX,RAX438 SHR RDX,32439 MOV ECX,IA32_GS_BASE440 WRMSR441 POP RDX442 POP RCX443 POP RAX444 RET445SET_FS_BASE::446 PUSH RAX447 PUSH RCX448 PUSH RDX449 MOV RDX,RAX450 SHR RDX,32451 MOV ECX,IA32_FS_BASE452 WRMSR453 POP RDX454 POP RCX455 POP RAX456_RET::457 RET458_SET_MSR::459 PUSH RBP460 MOV RBP,RSP461 MOV RAX,SF_ARG2[RBP]462 MOV RDX,RAX463 SHR RDX,32464 MOV RCX,SF_ARG1[RBP]465 WRMSR466 POP RBP467 RET1 16468_SYS_HLT::469 CLI470@@05: HLT471 JMP @@05472}473 