flat assembler
Message board for the users of flat assembler.
Index
> Main > flat assembler 1.67.3x Goto page Previous 1, 2, 3, 4, 5 Next |
Author |
|
Tomasz Grysztar 10 Feb 2009, 15:36
Then perhaps best thing to do would be to not put a REX here at all.
|
|||
10 Feb 2009, 15:36 |
|
MazeGen 10 Feb 2009, 15:48
So PEXTRW RAX will cause "invalid size of operand" or it will get silently assembled to PEXTRW EAX?
|
|||
10 Feb 2009, 15:48 |
|
MazeGen 10 Feb 2009, 16:25
Since REX would be completely unnecessary here, I think we can consider this as code size optimization.
The MOV -> LEA conversion is different thing because it changes whole instruction. (I remember someone complaining about this in GoAsm forum because GoAsm converts it.) |
|||
10 Feb 2009, 16:25 |
|
Tomasz Grysztar 10 Feb 2009, 18:31
revolution wrote: How do we say it to our friends? "I'm using version 1.6cool" So I think we have agreed upon a code name for the 1.68 release - it's "cool". |
|||
10 Feb 2009, 18:31 |
|
revolution 11 Feb 2009, 00:47
MazeGen wrote: The MOV -> LEA conversion is different thing because it changes whole instruction. (I remember someone complaining about this in GoAsm forum because GoAsm converts it.) The CPU does what it does without caring about human mnemonics. If we can use a shorter opcode to achieve the same effect then I don't see why not to use it. Perhaps instead of us forcing the assembler to make less efficient code we should instead be asking the disassembler writers to make their code more flexible/smarter? Last edited by revolution on 11 Feb 2009, 04:55; edited 1 time in total |
|||
11 Feb 2009, 00:47 |
|
vid 11 Feb 2009, 02:29
Isn't there difference in optimization between LEA and MOV? Such as LEA needing address calculation, or something like that. (just quessing)
|
|||
11 Feb 2009, 02:29 |
|
revolution 11 Feb 2009, 04:27
vid wrote: Isn't there difference in optimization between LEA and MOV? Such as LEA needing address calculation, or something like that. (just quessing) |
|||
11 Feb 2009, 04:27 |
|
bitRAKE 11 Feb 2009, 06:05
Macros should be used for this kind of pigeon hole optimization of assembly, imho. The only thing important to me is consistency because code size does matter when it comes to utilizing availble decode bandwidth. Also, jumping into unrolled loops of a constant granularity require tuning the size for binary masks.
|
|||
11 Feb 2009, 06:05 |
|
MazeGen 11 Feb 2009, 08:43
revolution, since this MOV->LEA conversion is perhaps the only optimization which we should seriously consider, we don't need to generalize this issue.
I think if one needs to save few bytes of code (what means s/he is not a beginner in asm language), one can always write Code: LEA RAX, [lbl] instead of Code: MOV RAX, lbl or overload the MOV instruction using a macro, as bitRAKE said. |
|||
11 Feb 2009, 08:43 |
|
revolution 11 Feb 2009, 14:43
|
|||
11 Feb 2009, 14:43 |
|
madmatt 12 Feb 2009, 07:23
Small little thing here, You need to update your copyright notice. people seeing it will think you haven't updated fasm since 2007.
|
|||
12 Feb 2009, 07:23 |
|
shoorick 12 Feb 2009, 07:57
Quote:
put there something like 2099 (to not care a while) |
|||
12 Feb 2009, 07:57 |
|
Tomasz Grysztar 12 Feb 2009, 09:00
madmatt wrote: Small little thing here, You need to update your copyright notice. people seeing it will think you haven't updated fasm since 2007. It took me a few moments of searching to realize, which one you're talking about. |
|||
12 Feb 2009, 09:00 |
|
mattst88 12 Feb 2009, 16:47
shoorick wrote:
It doesn't work like that. _________________ My x86 Instruction Reference -- includes SSE, SSE2, SSE3, SSSE3, SSE4 instructions. Assembly Programmer's Journal |
|||
12 Feb 2009, 16:47 |
|
DOS386 13 Feb 2009, 08:14
MazeGen wrote:
But there is 1.67.31 Quote: Fourth digit looks a bit too much for me. And we still have 1.67.32 - 1.67.99 namespace until 1.68 is done. Right. Please continue minor fixes with 1.67.32 , 1.67.33 ... Quote: I don't want the amount of packages on the server to grow too quickly with all the small mistake fixes. Just keep succesful old versions only, so keep 1.67.26 and 1.67.29, and kick 1.67.25, 1.67.27/28 as well as 1.67.30.xx and if you upload 1.67.32 soon, kick 1.67.31 at this time Quote: flat assembler 1.67.30 The new release comes today None of my enhancements and fixes is included _________________ Bug Nr.: 12345 Title: Hello World program compiles to 100 KB !!! Status: Closed: NOT a Bug |
|||
13 Feb 2009, 08:14 |
|
madmatt 13 Feb 2009, 08:17
Tomasz Grysztar wrote:
Yeah, I should've been more specific. _________________ Gimme a sledge hammer! I'LL FIX IT! |
|||
13 Feb 2009, 08:17 |
|
Tomasz Grysztar 13 Feb 2009, 09:43
DOS386 wrote: Right. Please continue minor fixes with 1.67.32 , 1.67.33 Those version numbers mean actual development progress, the one listed in whatsnew.txt The fourth digits reflects what used to be the "silent updates" - the quick fixes of obvious mistakes made in those development versions. DOS386 wrote: Just keep succesful old versions only, so keep 1.67.26 and 1.67.29, and kick 1.67.25, 1.67.27/28 as well as 1.67.30.xx and if you upload 1.67.32 soon, kick 1.67.31 at this time But that's the same what I'm doing by replacing the files with their new versions. Oh, but I know what troubles you - it's that the version listed on "Download" page doesn't chage. I'm correcting this. DOS386 wrote: None of my enhancements and fixes is included Currently I'm working on the core, not IDEs. When I get back to the work on IDE (and I have to do it one day, because they both are still "prototypes"; the things like directory browsing or .ini support are missing in FASMD not because I don't think they're necessary, but just because this is still far from the "final" version - possibly I should state it more clearly in the documentation draft?), I may look into your suggestions. |
|||
13 Feb 2009, 09:43 |
|
Helle 13 Feb 2009, 10:59
Hello,
PEXTRW works fine now (test with 32-Bit-OS and FAsm 1.67.31_2), but for PEXTRB R32,XMMx,Ib I think, in the ModR/M-Byte must change the reg-and the r/m-field (M8 is oK). PEXTRD R32,XMMx,Ib give the message "invalid size of operand", M32 is oK. Thanks Helle |
|||
13 Feb 2009, 10:59 |
|
Tomasz Grysztar 13 Feb 2009, 11:16
Fixed. And thanks for the report.
|
|||
13 Feb 2009, 11:16 |
|
Goto page Previous 1, 2, 3, 4, 5 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.