News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

HJWasm Releases

Started by johnsa, January 16, 2016, 08:24:52 AM

Previous topic - Next topic

habran

I have implemented those instructions,
however, I'll check for other missing ones
If you have some I overseen please let me know
Cod-Father

jj2007

Both OK for MB lib, and have become faster :t
HJWasm32 ; 6.3 secs->6.8 ->5.4
HJWasm64 ; 5.2 secs->5.4->4.4

TouEnMasm

For an easy way to find the new versions , can you put them in one only place ?.
For example here:
http://www.terraspace.co.uk/hjwasm.html
This allow to have a look on it from time to time.
And if can made another required ( very ambitious ?),I wait a 64 bits version with a working debug option.
/Zi .Debugging with source code is really usefull.


Fa is a musical note to play with CL

johnsa

Hey,

The new versions will always be kept up-to-date on the Terraspace site (They've just been updated now).

ToutEnMasm, 64bit debugging should work perfectly, I use it all the time in VS2012 and VS2015..

Heres a screen-shot debugging a 64bit app in VS2012:
www.terraspace.co.uk/vs_debug.png

I use the command line:
hjwasm64 -c -win64 -Zi -Zd-Zf -Zp8 svo3.asm

Cheers,
John

fearless

64bit debugging seems fine with x64dbg as well. I use radasm v2 and have these options set to compile and link:

3,O,$B\HJWASM64.EXE /c -win64 -Zp8 /Zi /win64 /D_WIN64 /Cp /nologo /W2 /Zi /Zd /nologo /I"$I",2
5,O,$B\LINK.EXE /SUBSYSTEM:WINDOWS /DEBUG /DEBUGTYPE:CV /PDB:"$18" /VERSION:4.0 /MACHINE:X64 /LIBPATH:"$L" /OUT:"$5",3,4

I edited my test64.rap file and set file no 18 under [Files] to be 18=Test64.pdb, so that in the linker it uses it /PDB:"$18"


http://postimg.org/image/gt36yuggv/

habran

Thanks jj2007, thanks fearless 8)
Cod-Father

dawnraider

Hi Habran,

Thanks for the update! We should create a test function that simply has all the new instructions listed back to back so we test the assembler and the generated code.

We have another problem with instruction encoding. I've also opened a new post here (http://masm32.com/board/index.php?topic=5067.0). Could you please look at this?


00000000                        temp proc
00000000  C4E27918CA            vbroadcastss xmm1, xmm2
00000005                        temp endp

VEX.128.66.0F38.W0 18 /r        RM V/V AVX2
VBROADCASTSS xmm1, xmm2


This code appears to work, however:


00000000                        temp proc
00000000  62F27D0878CA          vpbroadcastb xmm1, xmm2
00000006                        temp endp

VEX.128.66.0F38.W0 78 /r        RM V/V AVX2
VPBROADCASTB xmm1, xmm2/m8


causes an "illegal instruction" exception. The encoding for vpbroadcastb looks to be one byte too long. Do both of these generated encodings match Intel's specification?

Thanks in advance,

habran

You are doing excellent job dawnraider :t
The problem was that HJWasm produced EVEX code instead of AVX2
I fixed it and uploaded on Teraspace even though the date is 25th it is from today (I don't know yet how to change the date on Teraspace) John will change it when he wakes up
Cod-Father

dawnraider

Hi Habran,

Thanks for the update. This release is much better! All instructions now appear to have the correct VEX prefix.
The following AVX2 test code executes fine:


.DATA
ALIGN 16
auArithGreyScale DWORD 000000047h, 0000002DEh, 0000000D6h, 000000000h

.CODE
temp PROC

00000000  C5F877                vzeroall
00000003  C4E27918C9            vbroadcastss  xmm1,    xmm1
00000008  C4E27978C9            vpbroadcastb  xmm1,    xmm1
0000000D  488D0500000000        lea           rax,     auArithGreyScale
00000014  C4E2692C08            vmaskmovps    xmm1,    xmm2,     xmmword ptr [rax]
00000019  C4E2698C08            vpmaskmovd    xmm1,    xmm2,     xmmword ptr [rax]
0000001E  C4E36902CBAA          vpblendd      xmm1,    xmm2,     xmm3,     0AAh

temp ENDP


Thanks!

habran

Cod-Father

johnsa

Hi,

I've updated both x86 and x64 packages on http://www.terraspace.co.uk/hjwasm.html


Cheers!
John

TouEnMasm

Download the new version 26/01/2016

64 bits Windows 10 compiled OK before update
Quote
listview.asm(64) : Error A2224: Not supported with current output format: frame
listview.asm(65) : Error A2092: PROC, MACRO or macro loop directive must precede LOCAL
listview.asm(66) : Error A2092: PROC, MACRO or macro loop directive must precede LOCAL
listview.asm(67) : Error A2092: PROC, MACRO or macro loop directive must precede LOCAL
listview.asm(102) : Error A2142: Unmatched block nesting: WinMain
listview.asm(104) : Error A2224: Not supported with current output format: frame
listview.asm(105) : Error A2092: PROC, MACRO or macro loop directive must precede LOCAL
listview.asm(121) : Error A2142: Unmatched block nesting: InsertColumn
listview.asm(123) : Error A2224: Not supported with current output format: frame
listview.asm(124) : Error A2092: PROC, MACRO or macro loop directive must precede LOCAL
listview.asm(125) : Error A2092: PROC, MACRO or macro loop directive must precede LOCAL
listview.asm(175) : Error A2142: Unmatched block nesting: ShowFileInfo
listview.asm(177) : Error A2224: Not supported with current output format: frame
listview.asm(178) : Error A2092: PROC, MACRO or macro loop directive must precede LOCAL
listview.asm(179) : Error A2092: PROC, MACRO or macro loop directive must precede LOCAL
listview.asm(188) : Error A2159: INVOKE requires prototype for procedure
listview.asm(196) : Error A2142: Unmatched block nesting: FillFileInfo
listview.asm(198) : Error A2224: Not supported with current output format: frame
listview.asm(199) : Error A2092: PROC, MACRO or macro loop directive must precede LOCAL
listview.asm(225) : Error A2142: Unmatched block nesting: String2Dword
listview.asm(227) : Error A2224: Not supported with current output format: frame
listview.asm(228) : Error A2092: PROC, MACRO or macro loop directive must precede LOCAL
listview.asm(229) : Error A2092: PROC, MACRO or macro loop directive must precede LOCAL
listview.asm(230) : Error A2092: PROC, MACRO or macro loop directive must precede LOCAL
listview.asm(240) : Error A2159: INVOKE requires prototype for procedure
listview.asm(245) : Error A2159: INVOKE requires prototype for procedure
listview.asm(251) : Error A2159: INVOKE requires prototype for procedure
listview.asm(254) : Error A2159: INVOKE requires prototype for procedure
listview.asm(270) : Error A2142: Unmatched block nesting: CompareFunc
listview.asm(272) : Error A2224: Not supported with current output format: frame
listview.asm(273) : Error A2092: PROC, MACRO or macro loop directive must precede LOCAL
listview.asm(289) : Error A2142: Unmatched block nesting: UpdatelParam
listview.asm(291) : Error A2224: Not supported with current output format: frame
listview.asm(292) : Error A2092: PROC, MACRO or macro loop directive must precede LOCAL
listview.asm(293) : Error A2092: PROC, MACRO or macro loop directive must precede LOCAL
listview.asm(305) : Error A2142: Unmatched block nesting: ShowCurrentFocus
listview.asm(309) : Error A2224: Not supported with current output format: frame
listview.asm(310) : Error A2092: PROC, MACRO or macro loop directive must precede LOCAL
listview.asm(311) : Error A2092: PROC, MACRO or macro loop directive must precede LOCAL
listview.asm(321) : Error A2159: INVOKE requires prototype for procedure
listview.asm(322) : Error A2159: INVOKE requires prototype for procedure
listview.asm(364) : Error A2159: INVOKE requires prototype for procedure
listview.asm(368) : Error A2159: INVOKE requires prototype for procedure
listview.asm(374) : Error A2159: INVOKE requires prototype for procedure
listview.asm(378) : Error A2159: INVOKE requires prototype for procedure
listview.asm(383) : Error A2159: INVOKE requires prototype for procedure
listview.asm(397) : Error A2142: Unmatched block nesting: WndProc
listview.asm(411) : Error A2159: INVOKE requires prototype for procedure
listview.asm: 414 lines, 1 passes, 469 ms, 0 warnings, 48 errors


Fa is a musical note to play with CL

johnsa

Hi,

I'll check with Habran this evening as I know he applied a new change to avoid checking for EVEX encoding when it wasn't required.
This change was applied at about 1pm this afternoon to the latest binaries on the website. Once resolved we will be putting source-code up in github (+wiki and issues pages etc).
So the link will be shared as soon as that's live (and including on the website).

Cheers,
John

Grincheux

QuoteOnce resolved we will be putting source-code up in github (+wiki and issues pages etc).

Where are they?

Grincheux

I posted questions about JWAsm cmdline and never get an answer. I hope, one day perhaps...