www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 1862] New: asm: [ESI+1*EAX] should be a legal addr mode

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1862

           Summary: asm: [ESI+1*EAX] should be a legal addr mode
           Product: D
           Version: 1.025
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Severity: minor
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: clugdbug yahoo.com.au


Currently gives a 'bad addr mode' error, eg:
asm {
        movapd XMM1, [ESI+1*EAX];
}
It correctly accepts multipliers of 2, 4, 8, and 16, but a multiplier of 1
should be legal. The reason for wanting this is that it allows you to control
which register is used for scaling. movapd XMM1, [ESI+EAX] can be encoded as
either 
movapd XMM1, [1*ESI+EAX] or as movapd XMM1, [ESI+1*EAX]
This makes a difference when you have a RAT stall caused by reading too many
registers in a single clock cycle.


-- 
Feb 22 2008
parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1862


bugzilla digitalmars.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED




------- Comment #1 from bugzilla digitalmars.com  2008-03-07 00:33 -------
Fixed dmd 1.028 and 2.012


-- 
Mar 06 2008