flat assembler
Message board for the users of flat assembler.
Index
> Main > flat assembler 1.69.45-47 |
Author |
|
typedef 17 Mar 2012, 18:30
Nice.
Another request if possible for next release. Can you implement the recent files list ? Don't sweat it if you have other better priorities to attend to. I just thought that'd help too. |
|||
17 Mar 2012, 18:30 |
|
revolution 18 Mar 2012, 00:53
Tomasz Grysztar wrote: There is one detail concerning GATHER instructions which I still have to decide what to do with. Intel manual states that "if any pair of the index, mask, or destination registers are the same, instruction results in a UD fault". Now I'm not sure what to choose - should fasm check whether each of the three XMM/YMM registers is different, and signal an error otherwise, to prevent generating an invalid opcode? Perhaps yes. I have not implemented such check yet, however. |
|||
18 Mar 2012, 00:53 |
|
Tomasz Grysztar 18 Mar 2012, 09:03
revolution wrote: My viewpoint on #UD is that only the properly defined UD2 should be compilable to generate such a runtime error. But this can at least be applied to the cases of opcodes that will ALWAYS generated an #UD, and that's why I also though this check for gathering instructions should be implemented (I think I need a new error message for this one). |
|||
18 Mar 2012, 09:03 |
|
revolution 18 Mar 2012, 09:05
I notice this discrepancy
Code: virtual at eax*2 ;<--- Okay label x2 end virtual mov ebx,[x2] virtual at ymm7 label y end virtual virtual at ymm7*2 ;<--- error: invalid address. label y2 end virtual vgatherdps ymm1,dword[ecx+ymm7*2],ymm3 vgatherdps ymm1,dword[ecx+y*2],ymm3 vgatherdps ymm1,dword[ecx+y2],ymm3 |
|||
18 Mar 2012, 09:05 |
|
Tomasz Grysztar 18 Mar 2012, 10:13
I'm fixing this in 1.69.46 release, along with the added check for disallowed combinations of registers in V(P)GATHERxxx.
|
|||
18 Mar 2012, 10:13 |
|
revolution 18 Mar 2012, 12:33
This no longer assembles with v1.69.46:
Code: use64 virtual at rip ;<--- error: invalid address. label z end virtual |
|||
18 Mar 2012, 12:33 |
|
Tomasz Grysztar 18 Mar 2012, 13:56
No, and it's already corrected.
|
|||
18 Mar 2012, 13:56 |
|
revolution 18 Mar 2012, 14:04
The latest v1.69.46 accepts this:
Code: virtual at rip+(-1) shl 64 label z end virtual mov rax,[z] |
|||
18 Mar 2012, 14:04 |
|
Tomasz Grysztar 18 Mar 2012, 14:36
Oh, you found a place where I forgot to add support for the new 65-th value bit. I hope there isn't many such places left. I'm uploading another correction.
|
|||
18 Mar 2012, 14:36 |
|
revolution 18 Mar 2012, 14:55
Still accepts. Seems that the .exe's have not been updated but the source has been altered.
|
|||
18 Mar 2012, 14:55 |
|
Tomasz Grysztar 18 Mar 2012, 14:56
Oh, perhaps I forgot to re-assemble.
|
|||
18 Mar 2012, 14:56 |
|
revolution 18 Mar 2012, 15:30
Better now.
|
|||
18 Mar 2012, 15:30 |
|
peter 19 Mar 2012, 08:16
Tomasz, thank you so much for implementing AVX2 instructions.
|
|||
19 Mar 2012, 08:16 |
|
revolution 19 Mar 2012, 12:11
v1.69.47:
Code: use64 label k6 at rip+eip ; <--- Okay! Expected an error here label k7 at rip+eax ; <--- error: invalid address. |
|||
19 Mar 2012, 12:11 |
|
Tomasz Grysztar 19 Mar 2012, 12:21
Yeah, very interesting address indeed. A fix is on the way.
|
|||
19 Mar 2012, 12:21 |
|
Tomasz Grysztar 19 Mar 2012, 13:11
One more thing: should I disallow putting segment prefix in the V(P)GATHERxxx address? Intel documentation states that the computed addresses are linear ones, so segment prefixes will probably do nothing there.
|
|||
19 Mar 2012, 13:11 |
|
revolution 19 Mar 2012, 14:34
Tomasz Grysztar wrote: One more thing: should I disallow putting segment prefix in the V(P)GATHERxxx address? Intel documentation states that the computed addresses are linear ones, so segment prefixes will probably do nothing there. Are you referring to this? Section 4.2 - VECTOR SIB (VSIB) MEMORY ADDRESSING wrote: In AVX2, an SIB byte that follows the ModR/M byte can support VSIB memory addressing to an array of linear addresses. |
|||
19 Mar 2012, 14:34 |
|
Tomasz Grysztar 19 Mar 2012, 20:18
I think they should be more precise about these things. Well - in the old days the meaning of "linear address" phrase in Intel manuals was quite strict.
|
|||
19 Mar 2012, 20:18 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.