Terraspace / UASM

UASM - Macro Assembler
http://www.terraspace.co.uk/uasm.html
Other
220 stars 49 forks source link

Uasm 2.40: bad code is not raising an error #67

Closed gwoltman closed 6 years ago

gwoltman commented 6 years ago

vsubpd xmm0, xmm0, zmm14

This bad code assembles as EVEX encoded vsubpd xmm0, xmm0, xmm14 rather than raising an error

john-terraspace commented 6 years ago

Will get on these asap for 2.45 which should be ready in a day or so.

From: gwoltman [mailto:notifications@github.com] Sent: 08 November 2017 05:36 To: Terraspace/UASM UASM@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: [Terraspace/UASM] Uasm 2.40: bad code is not raising an error (#67)

vsubpd xmm0, xmm0, zmm14

This bad code assembles as EVEX encoded vsubpd xmm0, xmm0, xmm14 rather than raising an error

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Terraspace/UASM/issues/67 , or mute the thread https://github.com/notifications/unsubscribe-auth/AQGQVBjiuJW_-ZyYx_AGEI_PQ0klGDSHks5s0T2sgaJpZM4QV3h2 .

john-terraspace commented 6 years ago

Hi,

www.terraspace.co.uk/uasm64.zip http://www.terraspace.co.uk/uasm64.zip

This is the pre-release of 2.45 and should address both of these issues, please test and let me know.

Thanks!

John

From: gwoltman [mailto:notifications@github.com] Sent: 08 November 2017 05:36 To: Terraspace/UASM UASM@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: [Terraspace/UASM] Uasm 2.40: bad code is not raising an error (#67)

vsubpd xmm0, xmm0, zmm14

This bad code assembles as EVEX encoded vsubpd xmm0, xmm0, xmm14 rather than raising an error

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Terraspace/UASM/issues/67 , or mute the thread https://github.com/notifications/unsubscribe-auth/AQGQVBjiuJW_-ZyYx_AGEI_PQ0klGDSHks5s0T2sgaJpZM4QV3h2 .

gwoltman commented 6 years ago

New problem in 2.45 (from the .lst file):

0000BD9B 2 vcmpneqpd k1, zmm4, zmm30 Error A2071: Invalid operand size for instruction

john-terraspace commented 6 years ago

Ah.. it’s the code to prevent that xmm0,xmm0,zmm instruction you reported, it’s not detecting the k mask regs. Will fix and update the packages.

Thanks!

From: gwoltman [mailto:notifications@github.com] Sent: 10 November 2017 20:29 To: Terraspace/UASM UASM@noreply.github.com Cc: John Hankinson john@terraspace.co.uk; Comment comment@noreply.github.com Subject: Re: [Terraspace/UASM] Uasm 2.40: bad code is not raising an error (#67)

New problem in 2.45 (from the .lst file):

0000BD9B 2 vcmpneqpd k1, zmm4, zmm30 Error A2071: Invalid operand size for instruction

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Terraspace/UASM/issues/67#issuecomment-343577789 , or mute the thread https://github.com/notifications/unsubscribe-auth/AQGQVOqSlRMWLUGh7lZXPkV0_tABDDu5ks5s1LIjgaJpZM4QV3h2 .

john-terraspace commented 6 years ago

I’ve updated the packages on the site. Please try again.

From: gwoltman [mailto:notifications@github.com] Sent: 10 November 2017 20:29 To: Terraspace/UASM UASM@noreply.github.com Cc: John Hankinson john@terraspace.co.uk; Comment comment@noreply.github.com Subject: Re: [Terraspace/UASM] Uasm 2.40: bad code is not raising an error (#67)

New problem in 2.45 (from the .lst file):

0000BD9B 2 vcmpneqpd k1, zmm4, zmm30 Error A2071: Invalid operand size for instruction

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Terraspace/UASM/issues/67#issuecomment-343577789 , or mute the thread https://github.com/notifications/unsubscribe-auth/AQGQVOqSlRMWLUGh7lZXPkV0_tABDDu5ks5s1LIjgaJpZM4QV3h2 .

gwoltman commented 6 years ago

More issues (from .LST file):

00000077 0000000000000000 4 cmp BYTE PTR [r11+16*SZPTR+27], 0 ;; Is this a zero-padded FFT? 0000007F 4 je ??0006 ;; No, skip 7 word copy Error A2014: invalid combination of opcode and operands

and this simple one:

0000000A 5 push r15 Error A2014: invalid combination of opcode and operands

john-terraspace commented 6 years ago

I am reverting this change totally. It’s too unstable.

This was the logic to prevent the xmm,xmm,zmm instruction not generating an error.

Until we have a better solution in place.

From: gwoltman [mailto:notifications@github.com] Sent: 12 November 2017 01:28 To: Terraspace/UASM UASM@noreply.github.com Cc: John Hankinson john@terraspace.co.uk; Comment comment@noreply.github.com Subject: Re: [Terraspace/UASM] Uasm 2.40: bad code is not raising an error (#67)

More issues (from .LST file):

00000077 0000000000000000 4 cmp BYTE PTR [r11+16*SZPTR+27], 0 ;; Is this a zero-padded FFT? 0000007F 4 je ??0006 ;; No, skip 7 word copy Error A2014: invalid combination of opcode and operands

and this simple one:

0000000A 5 push r15 Error A2014: invalid combination of opcode and operands

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Terraspace/UASM/issues/67#issuecomment-343706903 , or mute the thread https://github.com/notifications/unsubscribe-auth/AQGQVDJeqc4yHj9ApxkOPKhkVxTxj8qnks5s1kmYgaJpZM4QV3h2 .

john-terraspace commented 6 years ago

I’ve just tested these before doing any changes, and they’re definitely working. Are you sure you’ve downloaded the latest build ?

2.45.3?

(If you right click the exe and go to properties->details, we have included a version resource in the app so you can see the specific build).

main proc

   sub rsp,20h

00007FF77169109C sub rsp,20h

SZPTR equ 8

   push r15

00007FF7716910A0 push r15

   cmp BYTE PTR [r11+16*SZPTR+27], 0

00007FF7716910A2 cmp byte ptr [r11+9Bh],0

   vcmpneqpd k1, zmm4, zmm30 ;this should be ok

00007FF7716910B0 vcmppd k1,zmm4,zmm30,4

   vmovupd [rsi-96]{k7}, zmm0

00007FF7716910B7 vmovupd zmmword ptr [rsi-60h]{k7},zmm0

   vmovaps [rsi-96]{k7}, zmm0

00007FF7716910C1 vmovaps zmmword ptr [rsi-60h]{k7},zmm0

   vmovapd [rsi-86]{k7}, zmm2

00007FF7716910CB vmovapd zmmword ptr [rsi-56h]{k7},zmm2

   vmovdqa [rsi-96],xmm0

00007FF7716910D5 vmovdqa xmmword ptr [rsi-60h],xmm0

   vmovaps [rsi-96],xmm0

00007FF7716910DA vmovaps xmmword ptr [rsi-60h],xmm0

From: gwoltman [mailto:notifications@github.com] Sent: 12 November 2017 01:28 To: Terraspace/UASM UASM@noreply.github.com Cc: John Hankinson john@terraspace.co.uk; Comment comment@noreply.github.com Subject: Re: [Terraspace/UASM] Uasm 2.40: bad code is not raising an error (#67)

More issues (from .LST file):

00000077 0000000000000000 4 cmp BYTE PTR [r11+16*SZPTR+27], 0 ;; Is this a zero-padded FFT? 0000007F 4 je ??0006 ;; No, skip 7 word copy Error A2014: invalid combination of opcode and operands

and this simple one:

0000000A 5 push r15 Error A2014: invalid combination of opcode and operands

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Terraspace/UASM/issues/67#issuecomment-343706903 , or mute the thread https://github.com/notifications/unsubscribe-auth/AQGQVDJeqc4yHj9ApxkOPKhkVxTxj8qnks5s1kmYgaJpZM4QV3h2 .

gwoltman commented 6 years ago

Yes, it was 2.45.3 32-bit version.

I will not be available for the next 3 weeks. When I return I can zip up a complete build environment for you to reproduce.

john-terraspace commented 6 years ago

Please try 2.46 now as all encoding related issues should be solved. Hopefully forever going forward! :)

gwoltman commented 6 years ago

Confirmed as fixed 2.46