is CPU cached code for low jitter outputs.
maybe increased speed pre-compile-run as intel Core i7 series innner process.
Code: Select all
Macro ALL_MMX_CLEAR_SHIFTWORD_INC_CL
BLSR_Rcx_x64
Set_CL1
MOVZX_Rcx
AddElement(Buffer()) : Buffer() = "MOVQ mm1, Rcx"
AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;1 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;2 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;3 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;4 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;5 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;6 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;7 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;8 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;9 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;10 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;11 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;12 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;13 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;14 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;15 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm0, mm1 ;16 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "MOVQ mm0, mm1"
AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;1 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;2 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;3 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;4 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;5 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;6 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;7 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;8 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;9 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;10 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;11 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;12 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;13 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;14 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;15 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm1, mm0 ;16 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;1 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;2 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;3 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;4 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;5 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;6 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;7 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;8 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;9 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;10 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;11 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;12 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;13 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;14 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;15 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm2, mm0 ;16 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;1 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;2 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;3 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;4 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;5 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;6 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;7 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;8 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;9 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;10 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;11 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;12 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;13 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;14 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;15 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm3, mm0 ;16 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;1 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;2 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;3 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;4 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;5 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;6 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;7 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;8 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;9 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;10 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;11 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;12 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;13 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;14 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;15 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm4, mm0 ;16 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;1 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;2 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;3 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;4 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;5 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;6 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;7 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;8 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;9 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;10 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;11 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;12 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;13 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;14 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;15 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm5, mm0 ;16 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;1 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;2 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;3 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;4 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;5 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;6 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;7 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;8 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;9 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;10 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;11 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;12 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;13 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;14 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;15 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm6, mm0 ;16 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;1 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;2 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;3 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;4 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;5 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;6 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;7 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;8 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;9 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;10 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;11 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;12 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;13 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;14 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;15 Left 1bit shift"
AddElement(Buffer()) : Buffer() = "PSLLW mm7, mm0 ;16 Left 1bit shift"
EndMacro
Macro BeforeProcedureRegisters_NULL_BLSR
AddElement(Buffer()) : Buffer() = "MOVQ mm0, Rax"
AddElement(Buffer()) : Buffer() = "MOVQ mm1, Rdx"
AddElement(Buffer()) : Buffer() = "MOVQ mm2, Rsp"
AddElement(Buffer()) : Buffer() = "MOVQ mm3, Rsi"
AddElement(Buffer()) : Buffer() = "MOVQ mm4, R8"
AddElement(Buffer()) : Buffer() = "MOVQ mm5, R10"
AddElement(Buffer()) : Buffer() = "MOVQ mm6, R12"
AddElement(Buffer()) : Buffer() = "MOVQ mm7, R14"
AddElement(Buffer()) : Buffer() = "MOVQ mm0, mm0"
AddElement(Buffer()) : Buffer() = "MOVQ mm1, mm1"
AddElement(Buffer()) : Buffer() = "MOVQ mm2, mm2"
AddElement(Buffer()) : Buffer() = "MOVQ mm3, mm3"
AddElement(Buffer()) : Buffer() = "MOVQ mm4, mm4"
AddElement(Buffer()) : Buffer() = "MOVQ mm5, mm5"
AddElement(Buffer()) : Buffer() = "MOVQ mm6, mm6"
AddElement(Buffer()) : Buffer() = "MOVQ mm7, mm7"
ForEach Reg64A()
AddElement(Buffer()) : Buffer() = " SMSW "+Reg16(Reg64A())
AddElement(Buffer()) : Buffer() = " MOVZX "+Reg64A()+", "+Reg16(Reg64A())
For Loop=1 To 64
AddElement(Buffer()) : Buffer() = " BLSR "+Reg64A()+", "+Reg64A()
Next
AddElement(Buffer()) : Buffer() = " MOV "+Reg8(Reg64A())+", "+Reg8(Reg64A())
If Len(Reg8(Reg64A()))=2
AddElement(Buffer()) : Buffer() = " MOV "+ReplaceString(Reg8(Reg64A()), "l", "h")+", "+ReplaceString(Reg8(Reg64A()), "l", "h")
EndIf
AddElement(Buffer()) : Buffer() = " MOV "+Reg16(Reg64A())+", "+Reg16(Reg64A())
AddElement(Buffer()) : Buffer() = " MOV "+Reg64A()+", "+Reg64A()
AddElement(Buffer()) : Buffer() = " MOV "+Reg16(Reg64A())+", "+Reg16(Reg64A())
If Len(Reg8(Reg64A()))=2
AddElement(Buffer()) : Buffer() = " MOV "+ReplaceString(Reg8(Reg64A()), "l", "h")+", "+ReplaceString(Reg8(Reg64A()), "l", "h")
EndIf
AddElement(Buffer()) : Buffer() = " MOV "+Reg8(Reg64A())+", "+Reg8(Reg64A())
Next
AddElement(Buffer()) : Buffer() = "MOVQ mm0, mm0"
AddElement(Buffer()) : Buffer() = "MOVQ mm1, mm1"
AddElement(Buffer()) : Buffer() = "MOVQ mm2, mm2"
AddElement(Buffer()) : Buffer() = "MOVQ mm3, mm3"
AddElement(Buffer()) : Buffer() = "MOVQ mm4, mm4"
AddElement(Buffer()) : Buffer() = "MOVQ mm5, mm5"
AddElement(Buffer()) : Buffer() = "MOVQ mm6, mm6"
AddElement(Buffer()) : Buffer() = "MOVQ mm7, mm7"
AddElement(Buffer()) : Buffer() = "MOVQ Rax, mm0"
AddElement(Buffer()) : Buffer() = "MOVQ Rdx, mm1"
AddElement(Buffer()) : Buffer() = "MOVQ Rsp, mm2"
AddElement(Buffer()) : Buffer() = "MOVQ Rsi, mm3"
AddElement(Buffer()) : Buffer() = "MOVQ R8, mm4"
AddElement(Buffer()) : Buffer() = "MOVQ R10, mm5"
AddElement(Buffer()) : Buffer() = "MOVQ R12, mm6"
AddElement(Buffer()) : Buffer() = "MOVQ R14, mm7"
AddElement(Buffer()) : Buffer() = "MOVQ mm0, Rcx"
AddElement(Buffer()) : Buffer() = "MOVQ mm1, Rbx"
AddElement(Buffer()) : Buffer() = "MOVQ mm2, Rbp"
AddElement(Buffer()) : Buffer() = "MOVQ mm3, Rdi"
AddElement(Buffer()) : Buffer() = "MOVQ mm4, R9"
AddElement(Buffer()) : Buffer() = "MOVQ mm5, R11"
AddElement(Buffer()) : Buffer() = "MOVQ mm6, R13"
AddElement(Buffer()) : Buffer() = "MOVQ mm7, R15"
AddElement(Buffer()) : Buffer() = "MOVQ mm0, mm0"
AddElement(Buffer()) : Buffer() = "MOVQ mm1, mm1"
AddElement(Buffer()) : Buffer() = "MOVQ mm2, mm2"
AddElement(Buffer()) : Buffer() = "MOVQ mm3, mm3"
AddElement(Buffer()) : Buffer() = "MOVQ mm4, mm4"
AddElement(Buffer()) : Buffer() = "MOVQ mm5, mm5"
AddElement(Buffer()) : Buffer() = "MOVQ mm6, mm6"
AddElement(Buffer()) : Buffer() = "MOVQ mm7, mm7"
ForEach Reg64B()
AddElement(Buffer()) : Buffer() = " SMSW "+Reg16(Reg64B())
AddElement(Buffer()) : Buffer() = " MOVZX "+Reg64B()+", "+Reg16(Reg64B())
For Loop=1 To 64
AddElement(Buffer()) : Buffer() = " BLSR "+Reg64B()+", "+Reg64B()
Next
AddElement(Buffer()) : Buffer() = " MOV "+Reg8(Reg64B())+", "+Reg8(Reg64B())
If Len(Reg8(Reg64B()))=2
AddElement(Buffer()) : Buffer() = " MOV "+ReplaceString(Reg8(Reg64B()), "l", "h")+", "+ReplaceString(Reg8(Reg64B()), "l", "h")
EndIf
AddElement(Buffer()) : Buffer() = " MOV "+Reg16(Reg64B())+", "+Reg16(Reg64B())
AddElement(Buffer()) : Buffer() = " MOV "+Reg64B()+", "+Reg64B()
AddElement(Buffer()) : Buffer() = " MOV "+Reg16(Reg64B())+", "+Reg16(Reg64B())
If Len(Reg8(Reg64B()))=2
AddElement(Buffer()) : Buffer() = " MOV "+ReplaceString(Reg8(Reg64B()), "l", "h")+", "+ReplaceString(Reg8(Reg64B()), "l", "h")
EndIf
AddElement(Buffer()) : Buffer() = " MOV "+Reg8(Reg64B())+", "+Reg8(Reg64B())
Next
AddElement(Buffer()) : Buffer() = "MOVQ mm0, mm0"
AddElement(Buffer()) : Buffer() = "MOVQ mm1, mm1"
AddElement(Buffer()) : Buffer() = "MOVQ mm2, mm2"
AddElement(Buffer()) : Buffer() = "MOVQ mm3, mm3"
AddElement(Buffer()) : Buffer() = "MOVQ mm4, mm4"
AddElement(Buffer()) : Buffer() = "MOVQ mm5, mm5"
AddElement(Buffer()) : Buffer() = "MOVQ mm6, mm6"
AddElement(Buffer()) : Buffer() = "MOVQ mm7, mm7"
AddElement(Buffer()) : Buffer() = "MOVQ Rcx, mm0"
AddElement(Buffer()) : Buffer() = "MOVQ Rbx, mm1"
AddElement(Buffer()) : Buffer() = "MOVQ Rbp, mm2"
AddElement(Buffer()) : Buffer() = "MOVQ Rdi, mm3"
AddElement(Buffer()) : Buffer() = "MOVQ R9, mm4"
AddElement(Buffer()) : Buffer() = "MOVQ R11, mm5"
AddElement(Buffer()) : Buffer() = "MOVQ R13, mm6"
AddElement(Buffer()) : Buffer() = "MOVQ R15, mm7"
AddElement(Buffer()) : Buffer() = "EMMS"
EndMacro
Macro MajiorityBuild_Tunes_18
Debug "MajiorityBuild_Tunes_18 START"
ForEach Buffer()
If Left(LTrim(Buffer()), 4) = "CALL" And Right(Buffer(), 13)="PB_DrawImage2"
Buffer() = "CALL QWORD PB_DrawImage2"
Debug "MajiorityBuild_Tunes_18"
PreviousElement(Buffer())
AddElement(Buffer()) : Buffer() = "MOV R15, Rcx"
ALL_MMX_CLEAR_SHIFTWORD_INC_CL
For Loop=0 To 7
For Loop2=0 To 7
If Loop<>Loop2
AddElement(Buffer()) : Buffer() = "MOVQ mm"+Str(Loop)+", mm"+Str(Loop2)
EndIf
Next
Next
AddElement(Buffer()) : Buffer() = "MOV Rcx, R15"
BeforeProcedureRegisters_NULL_BLSR
NextElement(Buffer())
NextElement(Buffer())
EndIf
Next
EndMacro
Macro MajiorityBuild_Tunes_19
Debug "MajiorityBuild_Tunes_19 START"
ForEach Buffer()
If Left(LTrim(Buffer()), 4) = "CALL" And FindString(Buffer(), "BASS_")>0
Debug "MajiorityBuild_Tunes_19"
PreviousElement(Buffer())
AddElement(Buffer()) : Buffer() = "MOV R15, Rcx"
ALL_MMX_CLEAR_SHIFTWORD_INC_CL
For Loop=0 To 7
For Loop2=0 To 7
If Loop<>Loop2
AddElement(Buffer()) : Buffer() = "MOVQ mm"+Str(Loop)+", mm"+Str(Loop2)
EndIf
Next
Next
AddElement(Buffer()) : Buffer() = "MOV Rcx, R15"
BeforeProcedureRegisters_NULL_BLSR
NextElement(Buffer())
NextElement(Buffer())
EndIf
Next
EndMacro
Macro MajiorityBuild_Tunes_20
Debug "MajiorityBuild_Tunes_20 START"
ForEach Buffer()
If Left(LTrim(Buffer()), 4) = "CALL" And FindString(Buffer(), "PB_Init")>0
Buffer() = ReplaceString(Buffer(), "CALL PB_Init", "CALL QWORD PB_Init")
Debug "MajiorityBuild_Tunes_20"
PreviousElement(Buffer())
AddElement(Buffer()) : Buffer() = "MOV R15, Rcx"
ALL_MMX_CLEAR_SHIFTWORD_INC_CL
For Loop=0 To 7
For Loop2=0 To 7
If Loop<>Loop2
AddElement(Buffer()) : Buffer() = "MOVQ mm"+Str(Loop)+", mm"+Str(Loop2)
EndIf
Next
Next
AddElement(Buffer()) : Buffer() = "MOV Rcx, R15"
BeforeProcedureRegisters_NULL_BLSR
NextElement(Buffer())
NextElement(Buffer())
EndIf
Next
EndMacro
Macro MajiorityBuild_Tunes_2
ForEach Buffer()
If FindString(Buffer(), "PureBasicStart:")
AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]"
AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]"
AddElement(Buffer()) : Buffer() = "NOP QWORD [PureBasicStart]"
AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]"
AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]"
AddElement(Buffer()) : Buffer() = "NOP QWORD [_PB_DataSection]"
AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]"
AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]"
ALL_MMX_CLEAR_SHIFTWORD_INC_CL
For Loop=0 To 7
For Loop2=0 To 7
If Loop<>Loop2
AddElement(Buffer()) : Buffer() = "MOVQ mm"+Str(Loop)+", mm"+Str(Loop2)
EndIf
Next
Next
BeforeProcedureRegisters_NULL_BLSR
AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]"
AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]"
AddElement(Buffer()) : Buffer() = "NOP QWORD [PureBasicStart]"
AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]"
AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]"
AddElement(Buffer()) : Buffer() = "NOP QWORD [_PB_DataSection]"
AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]"
AddElement(Buffer()) : Buffer() = "NOP QWORD [Rip]"
Break
EndIf
Next
EndMacro
; " /MMX /UNICODE /CONSOLE /commented /OPTIMIZER "
If ReadFile(2, "PureBasic.asm")
While Eof(2)=0
AddElement(Buffer())
Buffer() = ReadString(2)
Wend
CloseFile(2)
EndIf
MajiorityBuild_Tunes_2
MajiorityBuild_Tunes_18
MajiorityBuild_Tunes_19
MajiorityBuild_Tunes_20
If CreateFile(2, "PureBasic.asm")
ForEach Buffer()
WriteStringN(2, Buffer())
Next
FlushFileBuffers(2)
CloseFile(2)
EndIf
; " /MMX /UNICODE /CONSOLE /REASM /OPTIMIZER /ICON /OUTPUT "