flat assembler
Message board for the users of flat assembler.
![]() Goto page Previous 1, 2, 3, 4 Next |
Author |
|
decard 11 Dec 2005, 18:13
Is there any such project somewhere on the web?
|
|||
![]() |
|
DC740 11 Dec 2005, 19:48
i didn't find any, and going back to the topic, it's true, the only way to patch system dlls is copying the patched dll to the dll cache directory...
http://www.windowsnetworking.com/articles_tutorials/Tweaking-XP-Windows-File-Protection-SP2.html good bye n happy coding |
|||
![]() |
|
lilljocke 12 Dec 2005, 01:40
Hi
I very interested in this project. I'm codeing a program that can make a "system dll patcher" program. i hope that it can help you Is the 64 bit version more secure? i mean if it use the same funtion as the 32 bit? |
|||
![]() |
|
Matrix 12 Dec 2005, 03:56
Madis731 wrote: Aren't the 64 and 32-bit variants of Intel CPUs equally priced? You can even buy a 64-bit Celeron for about $100 to test this code thx, but i need now, new ram, new processor, motherboard, video card, hdd, dvdrw, monitor, keyboard, and some rack ![]() |
|||
![]() |
|
Madis731 12 Dec 2005, 08:03
What if we hypothetically rewrite all functions. What happens to that file in general. I mean it doesn't get any smaller because the function entry addresses must remain the same - you might only get it smaller by optimizing the last function in binary for size.
What happens when your new code is more speedwise than size? You will use freed space from other function and jump or call to these ![]() How would a separate DLL be possible? Do you have to change all references to these functions? Raw-linked programs will not work then ![]() |
|||
![]() |
|
r22 13 Dec 2005, 23:26
With the amount of space there's no way that I've found to optimize ALL the memory moves. I've tried a few methods but I either run out of space or I only speed up small sizes and medium sizes are slow or visa versa. AMD64 optimization guide was pretty much followed to the letter in the 64bit memmove.
If someone else wants to give it a try good luck the source for the function is 14posts /\ up. |
|||
![]() |
|
decard 13 Dec 2005, 23:37
Why you can't change addresses of functions?
|
|||
![]() |
|
LocoDelAssembly 13 Dec 2005, 23:48
Madis731 wrote: Raw-linked programs will not work then |
|||
![]() |
|
vbVeryBeginner 14 Dec 2005, 22:05
![]() sorry, not intend to Quote: I think we've trailed away from the point... Last edited by vbVeryBeginner on 15 Dec 2005, 03:54; edited 1 time in total |
|||
![]() |
|
r22 15 Dec 2005, 01:13
I think we've trailed away from the point...
Help me optimize the win64 memmove function END STATEMENT Anyone know of an AMD *64* paper that has source code on an amd lab optimized memmove? There's AMD provided source for an MMX memmove but thats not for 64bit architecture. There 64bit opt guide just says "Your OS will proivde an optimized memmove blah blah blah" |
|||
![]() |
|
vid 15 Dec 2005, 01:24
I think that mov is optimized...
Rather try to look for some other extremely-bad optimized function which is often used, you will get more speed that way. |
|||
![]() |
|
lilljocke 15 Dec 2005, 22:15
Here is a tool for creating a patch to your patched ntdll file. I have tested it my self and it works finne
![]()
|
|||||||||||
![]() |
|
Madis731 16 Dec 2005, 08:33
Does this old source of memcpy() help you?
http://www.azillionmonkeys.com/qed/blockcopy.html This is how results from the end of year 2003 are commented: Paul Hsieh wrote: Update (9/11/03): For the Athlon XP processor, using the xmm registers (SSE) leads to a dramatic performance improvement either in or out of the cache (don't ask me why/how): ...and at the very end of the article he gives you a link to AMD's memcpy(): ftp://ftp.amd.com/pub/devconn/vcc/memcpy_amd.zip It got me thinking here - the cache pollution theme. When you bypass cache it retains the values in it but is it that neccessary at that moment. Let's say you have a 2MB cache on modern CPU. You have a GB of data to copy or move. Would it be significantly faster to copy in strides of 128Bytes bypassing cache than copying in strides of 2MB (2097152Bytes!!!). Why I came to this idea was the harddisk problem where you have two threads running that both access disk, but from different areas. The head flips like a maniac ![]() The problem with 128bytes is that you won't get an average speed out of it when there are jumps and comparisons included. 2MB of continuous copying would be a breeze and it would favour even RDRAMs (though they are less common) and other high-speed, high-latency RAMs. You think that they are RANDOM-access-memory, but the fact is that you won't get the full speed out of them if you randomly access by only a few bytes. Did this make sense or should I be more specific? |
|||
![]() |
|
vid 16 Dec 2005, 14:48
due to what i 've read SSE can't be safely used in Win64 anymore
|
|||
![]() |
|
Tomasz Grysztar 16 Dec 2005, 14:54
Don't you mean FPU? AFAIK, the SSE should be used instead of FPU in Win64 (since FPU registers are not preserved).
|
|||
![]() |
|
MazeGen 16 Dec 2005, 15:03
You're wrong, vid, I was talking about MMX and FPU, these are not saved between process switches.
|
|||
![]() |
|
LocoDelAssembly 16 Dec 2005, 15:21
Why MMX/FPU are not saved anymore? If I need a REAL10 number how can I handle it without FPU?
|
|||
![]() |
|
MazeGen 16 Dec 2005, 15:48
See this link.
Quote:
Why? I really don't know, maybe because the operation of saving/restoring is too slow. How? For FP operations, you have SSE, SSE2 and SSE3. |
|||
![]() |
|
Tomasz Grysztar 16 Dec 2005, 15:59
But he's right, there's no 80-bit fp operations in SSE.
|
|||
![]() |
|
Goto page Previous 1, 2, 3, 4 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.