Here are 64bit and 32bit binaries with AVX2
please test it
remember that this is my version with all improvements and fixing
so to access it you should use this for 64 bit:
option casemap : none
option win64 : 11
option frame : auto
option stackbase : rsp
.xmm
remember, to be able to run AVX2 you need haswell processor at least
Quote from: habran on November 18, 2014, 07:21:42 AM
Here are 64bit and 32bit binaries with AVX2
please test it
WinMain proc uses edi esi ebx hInst:DWORD, hPrevInst:DWORD, CmdLine:DWORD, CmdShow:DWORD
LOCAL wc:WNDCLASSEXW, msg:MSG, NotRef
ClearLocals
int 3
lea esi, wc
mov wc.cbSize, sizeof WNDCLASSEXW
mov wc.style, CS_HREDRAW or CS_VREDRAW or CS_BYTEALIGNWINDOW
Habran
WinMain Ú$ À55 push ebp ; INT ReTestH.WinMain(hCurrInstance,hPrevInstance,CmdLine,ShowState)
0040187F ³. 8BEC mov ebp, esp
00401881 ³. 83EC 50 sub esp, 50
00401884 ³. 57 push edi
00401885 ³. 56 push esi
00401886 ³. 53 push ebx
00401887 ³. E8 E43C0100 call ClearLocalsP
0040188C ³. C705 54EC4100 mov dword ptr [41EC54], 64
00401896 ³. CC int3
00401897 ³? 8D75 00 lea esi, [ebp]
0040189A ³? C745 00 300000 mov dword ptr [ebp], 30
004018A1 ³? C745 04 032000 mov dword ptr [ebp+4], 2003
Japheth
WinMain Ú$ À55 push ebp ; INT ReTest.WinMain(hCurrInstance,hPrevInstance,CmdLine,ShowState)
0040187F ³. 8BEC mov ebp, esp
00401881 ³. 83EC 50 sub esp, 50
00401884 ³. 57 push edi
00401885 ³. 56 push esi
00401886 ³. 53 push ebx
00401887 ³. E8 843E0100 call ClearLocalsP
0040188C ³. C705 54EC4100 mov dword ptr [41EC54], 64
00401896 ³. CC int3
00401897 ³? 8D75 D0 lea esi, [ebp-30]
0040189A ³? C745 D0 300000 mov dword ptr [ebp-30], 30
004018A1 ³? C745 D4 032000 mov dword ptr [ebp-2C], 2003
Thaks jj2007 :t
I was always concentrated on 64 bit so I missed to see that mistake
I'll fix it as soon as possible
If it requires more time I'll implement AVX2 in original JWasm for 32 bit
thanks again :biggrin:
PS: I removed 32 bit until I fix it
64 bit is OK
I have uploaded at the top new version of 32 bit with AVX2 built in
that is built from original code with no additions except AVX2
please test it and let me know if OK
Quote from: habran on November 18, 2014, 07:36:16 PM
I have uploaded at the top new version of 32 bit with AVX2 built in
This one chokes complaining it can't find msvcr120.dll :(
Note that JWasm of 19 Feb 2014 is happy with the old linker and mspdb50.dll (June 1998). And I guess many people are not eager to install the latest behemoth of the Visual S*** saga just to be able to test a tool...
Never happy ;)
Here is 32 bit version built with VC2005
Test this one
PS: I added 64 bit built with VC2005
and it is also original source without other additions except AVX2
Google for activation generation context failed to see what happens with the latest version. Did you post the release version? Most frequent cause of this problem is that the debug version will run only on machines that have the same configuration (=the same dll hell) as the coder.
=================
Inizio generazione contesto di attivazione.
Parametro di input:
Flags = 0
ProcessorArchitecture = Wow32
CultureFallBacks = it-IT;it
ManifestPath = J:\Masm32\bin\JWasm.exe
AssemblyDirectory = J:\Masm32\bin\
Application Config File =
-----------------
INFORMAZIONI: analisi del file manifesto J:\Masm32\bin\JWasm.exe in corso.
INFORMAZIONI: l'identità di definizione del manifesto è (null).
INFORMAZIONI: riferimento: Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.6195"
INFORMAZIONI: risoluzione del riferimento Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.6195" in corso.
INFORMAZIONI: risoluzione del riferimento per ProcessorArchitecture WOW64 in corso.
INFORMAZIONI: risoluzione del riferimento per la lingua Neutral in corso.
INFORMAZIONI: applicazione dei criteri di binding in corso.
INFORMAZIONI: criteri di autore non trovati.
INFORMAZIONI: reindirizzamento criteri di binding non trovato.
INFORMAZIONI: inizio dell'esecuzione del probe dell'assembly.
INFORMAZIONI: assembly non trovato in WinSxS.
INFORMAZIONI: tentativo di esecuzione del probe del manifesto in C:\Windows\assembly\GAC_32\Microsoft.VC80.CRT\8.0.50727.6195__1fc8b3b9a1e18e3b\Microsoft.VC80.CRT.DLL.
INFORMAZIONI: manifesto non trovato per la lingua Neutral.
INFORMAZIONI: fine dell'esecuzione del probe dell'assembly.
INFORMAZIONI: risoluzione del riferimento per ProcessorArchitecture x86 in corso.
INFORMAZIONI: risoluzione del riferimento per la lingua Neutral in corso.
INFORMAZIONI: applicazione dei criteri di binding in corso.
INFORMAZIONI: ricerca dei criteri di autore in C:\Windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4940_none_516d712b0f495a45.manifest
INFORMAZIONI: reindirizzamento criteri di binding non trovato.
INFORMAZIONI: inizio dell'esecuzione del probe dell'assembly.
INFORMAZIONI: assembly non trovato in WinSxS.
INFORMAZIONI: tentativo di esecuzione del probe del manifesto in C:\Windows\assembly\GAC_32\Microsoft.VC80.CRT\8.0.50727.6195__1fc8b3b9a1e18e3b\Microsoft.VC80.CRT.DLL.
INFORMAZIONI: tentativo di esecuzione del probe del manifesto in J:\Masm32\bin\Microsoft.VC80.CRT.DLL.
INFORMAZIONI: tentativo di esecuzione del probe del manifesto in J:\Masm32\bin\Microsoft.VC80.CRT.MANIFEST.
INFORMAZIONI: tentativo di esecuzione del probe del manifesto in J:\Masm32\bin\Microsoft.VC80.CRT\Microsoft.VC80.CRT.DLL.
INFORMAZIONI: tentativo di esecuzione del probe del manifesto in J:\Masm32\bin\Microsoft.VC80.CRT\Microsoft.VC80.CRT.MANIFEST.
INFORMAZIONI: manifesto non trovato per la lingua Neutral.
INFORMAZIONI: fine dell'esecuzione del probe dell'assembly.
INFORMAZIONI: impossibile risolvere il riferimento Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.6195".
ERRORE: generazione del contesto di attivazione non riuscita.
Fine generazione contesto di attivazione.
reloaded at the same spot ::)
Quote from: habran on November 18, 2014, 10:48:17 PM
reloaded at the same spot ::)
reply #5? Works like a charm :t
Hi Habran!
I really appreciate your work, doing great job being a fan of JWASM myself too. :t
Any reason you don't fork it or put it on a GIT somewhere?
It took me quite a time figuring out what you up to by crawling through the numerous versions you have published on the forum.
Quote from: jj2007 on November 19, 2014, 03:41:59 AM
Quote from: habran on November 18, 2014, 10:48:17 PM
reloaded at the same spot ::)
reply #5? Works like a charm :t
Thanks jj2007, glad to make
YOU happy :lol:
Quote from: Ficko on November 19, 2014, 06:26:40 AM
Hi Habran!
I really appreciate your work, doing great job being a fan of JWASM myself too. :t
Any reason you don't fork it or put it on a GIT somewhere?
It took me quite a time figuring out what you up to by crawling through the numerous versions you have published on the forum.
Thanks Ficko, I am planing to do that as soon as I finish testing and fixing my version of 32 bit
I am also planing to implement RIP instruction
I am also planing to translate it to 64 bit assembly language
However, I have no idea about GIT and how it works
Quote
I am also planing to implement RIP instruction
I am also planing to translate it to 64 bit assembly language
Sounds like a plan. 8)
Quote
However, I have no idea about GIT and how it works
Ok.
I highly recommend this http://www.fossil-scm.org/fossil/doc/tip/www/quickstart.wiki (http://www.fossil-scm.org/fossil/doc/tip/www/quickstart.wiki)
It is like SQLight for Database solutions, "Self-Containing", GIT + Wiki in one executable.
- Getting one up running takes about 1 min. -
- To learn to use it maybe 15 mins. -
Fossil can act as a stand-alone web server on localhost.
I am using it for my Visual Studio projects.
It is great with graphs everything.
May Hutch could set up something like that for the forum. :bgrin:
There are some great projects moving slowly to oblivion due to the originator abandoned them.
Like "RadASM" etc. such projects could be hosted here and developed further or maintained by members.
Thanks for the link Ficko :t
Quote
May Hutch could set up something like that for the forum. :bgrin:
There are some great projects moving slowly to oblivion due to the originator abandoned them.
Like "RadASM" etc. such projects could be hosted here and developed further or maintained by members.
I totally agree with you :biggrin:
Hi Ficko,
Quote from: Ficko on November 19, 2014, 07:22:57 AM
There are some great projects moving slowly to oblivion due to the originator abandoned them.
Like "RadASM" etc. such projects could be hosted here and developed further or maintained by members.
that's a reasonable proposal. I hope that jWasm isn't orphaned. Anyway, Habran made an excellent job. :t
Gunther
Thanks Gunther :biggrin:
Have you tested it yet?
Hi Habran,
Quote from: habran on November 19, 2014, 08:10:43 AM
Have you tested it yet?
only partially, but that works fine. The rest comes next weekend, because this week is like hell (exams, exams and exams). I've to supervise the entire circus.
Gunther
Take your time Gunther :biggrin:
Those people are the lucky ones because they have you to supervise them ;)
I have fixed 32 bit at the top of this thread
these 2 at the top are my version with all benefits
post #5 contains original versions with only AVX2 added
if everything is OK I will create a new thread with sources an binaries
Hi Habran,
Quote from: habran on November 19, 2014, 11:26:09 PM
I have fixed 32 bit at the top of this thread
these 2 at the top are my version with all benefits
special thanks. :t You're a hard working man.
Gunther
WinMain proc uses edi esi ebx hInst:DWORD, hPrevInst:DWORD, CmdLine:DWORD, CmdShow:DWORD
....
int 3
return msg.wParam
00401A00 ³> ÀCC int3
00401A01 ³. 8B45 BC mov eax, [ebp-44]
00401A04 ³. 8BE5 mov esp, ebp
00401A06 ³. 5D pop ebp
00401A07 À. C2 1000 retn 10
should be:
00401A01 ³. 8B45 BC mov eax, [ebp-44]
00401A04 ³. 5B pop ebx
00401A05 ³. 5E pop esi
00401A06 ³. 5F pop edi
00401A07 ³. 8BE5 mov esp, ebp
00401A09 ³. 5D pop ebp
00401A0A À. C2 1000 retn 10
deleted
Quote
special thanks. :t You're a hard working man.
...with a broken arm :biggrin:
Hey jj2007, I don't like you, I LOVE you (nothing sexual) ;)
thank you for finding that error
I fixed it and uploaded it
test it please
to have ebp free for use you can use also:
option stackbase : esp
thank you nidud for protecting me :t
Hi Habran,
Quote from: habran on November 20, 2014, 07:24:14 AM
thank you for finding that error
I fixed it and uploaded it
test it please
that was a very fast fix. :t
Gunther
Hey Gunther
You are such a fine person :biggrin:
I wish you lived somewhere closer to me so I could visit you
Quote from: habran on November 20, 2014, 07:24:14 AM
test it please
Works fine now with the RichMasm source (15,000+ lines) :t
Thanks mate :t
I am glad that you are happy :biggrin:
I'll wait for Gunther to test AVX2 instructions and if OK than I'll crate a new thread with sources and binaries
I'll also write detailed instructions how to use my versions with all the benefits I have implemented
I have made a test with a jwasm sample Win64_8.asm
It work but I get strange display
Quote
JWasm v2.12pre, Nov 17 2014, Masm-compatible assembler.
Portions Copyright (c) 1992-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
Win64_8.asm: 367 lines, 3 passes, 15 ms, 0 warnings, 0 errors
Error A2168: General Failure
There has been an error while assembling this project.
Appuyez sur une touche pour continuer...
Quote
AMD A6-5200 APU with Radeon(TM) HD Graphics
Windows 8.1
VC++ express 2013
Hi Habran,
Quote from: habran on November 21, 2014, 07:30:47 AM
I wish you lived somewhere closer to me so I could visit you
in any case: If you ever come to Germany, especially Berlin, you should visit me. We could have a beer or two and talk about the world and the forum.
Gunther
Hi ToutEnMasm :biggrin:
when you use my 64bit version JWasm (at the top of this thread)
use this options:
option casemap : none
option win64 : 11 ;eleven
option frame : auto
option stackbase : rsp
.xmm
and than see if it will give you the same result
I was being careful not to disturb original layout but it looks like it leaked somewhere
I'll go through everything again and make sure that all options work independently
however, for now if you use my version than use option win64 : 11 ;eleven
you have also available under the post #5 the original version with only AVX2 added
try if it works with Win8
please keep me updated
Quote from: Gunther on November 21, 2014, 08:55:36 PM
Hi Habran,
in any case: If you ever come to Germany, especially Berlin, you should visit me. We could have a beer or two and talk about the world and the forum.
Gunther
I have 2 sisters in Grmny: one lives in Ravensburg and the other one in Konstanc on Bodensee
I have a plan to visit them in next few years but I am not ready yet (financially)
I'll certainly visit you when I come
however, if you ever decide to come to OZ you must visit me, we have also German beers here)
I live in Adelaide and Germans settled in Adelaide hills 1838
I loved the life in Germany, it was a beautiful and developed, dynamic country (1972-74 when Willy Brandt was a Chancellor of the Federal Republic of Germany)
I loved German girls and they loved me back (I was 17-19) :dazzled:
I use the good options in the sample you can download.
I have changed jwasm for the one in the 5 post,and I get
Quote
Win64_8.asm(18) : Error A2235: Constant value too large: Bh ;option win64 : 11
OK ToutEnMasm :biggrin:
That one in post #5 is an original JWasm12 version with only AVX2 built in
so you can use maximum option win64 : 7 which will create 16 byte data alignment
if you don't need 16 byte data alignment use option win64 : 3
the version on the top of the post is my version which is more 'sofisticated'
and able to decide by itself if variable needs 16 byte or 8 byte alignment
and needs option win64 : 11
if you read again my #28 you will see that I explained that there
have a fan :t
Hi Habran,
Quote from: habran on November 21, 2014, 11:14:35 PM
I loved the life in Germany, it was a beautiful and developed, dynamic country (1972-74 when Willy Brandt was a Chancellor of the Federal Republic of Germany)
I loved German girls and they loved me back (I was 17-19) :dazzled:
that I can well imagine. :t
Gunther
One day, when I retire, if I get tired of programming I'll write a novel about that life in Germany and maybe make a movie about it 8)
Quote from: habran on November 22, 2014, 01:24:46 PM
One day, when I retire, if I get tired of programming I'll write a novel about that life in Germany and maybe make a movie about it 8)
This would be interesting. That's for sure.
Gunther
Thanks Gunther :biggrin:
Hey ToutEnMasm, did you succeed to assemble AVX2 instructions? :biggrin:
Need another WinMainCRTStartup entry point (link error)
If you can post the same sample who works for you,that will be more simple.
The windows sample Works for me without the -pe option
Vc2013
windows 8.1
Hi ToutEnMasm :biggrin:
here is my latest build 64bit with VC13
this is my full version
use:
option casemap : none
option win64 : 11
option frame : auto
option stackbase : rsp
I hope you will be happy with it :bgrin:
Hi Habran
May your provide the complete environment, including your sources, for VC2013? It will help a lot to setup VC faster.
Thanks.
Biterider
Hi Biterider :biggrin:
long time no see ;)
I will do that in the morning which is about 6 hours from now
see you later
I have replaced JWasm64 and JWasm32 on the top of the thread
there was a bug in hll.c in HllExitDir proc in .CONTINUE
fixed and runs fine now
Quote from: habran on November 30, 2014, 06:26:46 AM
I have replaced JWasm64 and JWasm32 on the top of the thread
there was a bug in hll.c in HllExitDir proc in .CONTINUE
fixed and runs fine now
Have you updated the source as well?
Update: oops sorry. it's posted on another thread. i didn't notice it :redface:
Hi, thanks for your work with jwasm/avx2
I get renderAsm.asm(63): error A2049: Invalid instruction operands
when using
vmovntdqa ymm0, ymmword ptr [rdx+r9]
vmovntdqa ymm1, ymmword ptr [rdx+r9+20H]
vmovntdqa ymm2, ymmword ptr [rdx+r9+40H]
vmovntdqa ymm3, ymmword ptr [rdx+r9+60H]
the following works ok
vmovntdq ymmword ptr [rcx+r9], ymm0
vmovntdq ymmword ptr [rcx+r9+20H], ymm1
vmovntdq ymmword ptr [rcx+r9+40H], ymm2
vmovntdq ymmword ptr [rcx+r9+60H], ymm3
and it all compiles ok in masm.
Hope you can fix the vmovntdqa issue
thanks
Hi sbgk
Good find :t
It was Typo error easy fix :biggrin:
here is fixed version
Hi Habran,
I've tested the new version a bit with different kinds of AVX2 instructions and it seems to work reliable. I've installed several virtual machines and I'll check if it is possible to compile the sources for some other supported platforms. I think we should discuss some necessary details vi PM.
Gunther
Thanks Gunther :t
At the moment I am working on AVX512 to build in JWasm
When I finish I will change the name of it
rrr314159 already nicknamed it HJWasm and maybe I'll stick with it
QuoteI think we should discuss some necessary details vi PM.
that's OK :biggrin:
Hi Habran,
Quote from: habran on January 17, 2015, 06:48:34 AM
At the moment I am working on AVX512 to build in JWasm
testing the AVX512 instructions is a bit tricky. We've only software emulations available at the present time. But I think the Knights Landing (http://en.wikipedia.org/wiki/Xeon_Phi#Knights_Landing) processors will arrive very soon.
Gunther
Hi Gunther :biggrin:
Lucky, I found Agner Fog's objconv http://www.agner.org/optimize/ (http://www.agner.org/optimize/)
which can read AVX512 binaries
Very nice and useful tool :t
However, I am working my butt off to implement it ::)
It is the most complex thing yet I've done in JWasm 8)
Quote from: habran on January 15, 2015, 09:34:47 AM
Hi sbgk
Good find :t
It was Typo error easy fix :biggrin:
here is fixed version
Hi habran,
thanks, that compiles now, didn't expect such a quick fix.
thanks again for keeping jwasm going.
Habran,
Quote from: habran on January 23, 2015, 09:58:28 PM
Lucky, I found Agner Fog's objconv http://www.agner.org/optimize/ (http://www.agner.org/optimize/)
which can read AVX512 binaries
Very nice and useful tool :t
yes, Agner Fog's tools are very useful. Reading his optimization manuals is a must.
Gunther
Quote from: sbgk on January 25, 2015, 03:11:13 AM
thanks again for keeping jwasm going.
JWasm is to good to let it retard :t
It is my duty to keep it updated
Before I was pushing Japheth to develop it, now I have to push myself :biggrin:
>Gunther, at the moment I am distracted with the
Australian Open so I can not concentrate fully on programming,
however, I am looking forward to have AVX512 built in :bgrin: