Thread overview
[phobos] phobos commit, revision 2219
Dec 11, 2010
dsource.org
Dec 11, 2010
Brad Roberts
Dec 12, 2010
Brad Roberts
December 11, 2010
phobos commit, revision 2219


user: walter

msg:
repair bit rot on make -cov

http://www.dsource.org/projects/phobos/changeset/2219

December 10, 2010
On 12/10/2010 10:02 PM, dsource.org wrote:
> phobos commit, revision 2219
> 
> 
> user: walter
> 
> msg:
> repair bit rot on make -cov
> 
> http://www.dsource.org/projects/phobos/changeset/2219

Is there a dmd change that accompanies this one that you haven't submitted yet?
 I just sync'ed up and the llmath.d changes don't build for x86_64:

    internal/llmath.d(346): bad type/size of operands 'test'

December 11, 2010
On 12/10/2010 11:13 PM, Brad Roberts wrote:
> On 12/10/2010 10:02 PM, dsource.org wrote:
>> phobos commit, revision 2219
>>
>>
>> user: walter
>>
>> msg:
>> repair bit rot on make -cov
>>
>> http://www.dsource.org/projects/phobos/changeset/2219
> 
> Is there a dmd change that accompanies this one that you haven't submitted yet?
>  I just sync'ed up and the llmath.d changes don't build for x86_64:
> 
>     internal/llmath.d(346): bad type/size of operands 'test'

I dug in and with these changes, the new llmath.d code compiles and looks to generate the correct .o files:

Index: backend/iasm.h ===================================================================
--- backend/iasm.h      (revision 795)
+++ backend/iasm.h      (working copy)
@@ -94,6 +94,7 @@
 #define _imm8   CONSTRUCT_FLAGS(_8, _imm, _normal, 0 )
 #define _imm16  CONSTRUCT_FLAGS(_16, _imm, _normal, 0)
 #define _imm32  CONSTRUCT_FLAGS(_32, _imm, _normal, 0)
+#define _imm64  CONSTRUCT_FLAGS(_64, _imm, _normal, 0)
 #define _rel8   CONSTRUCT_FLAGS(_8, _rel, _normal, 0)
 #define _rel16  CONSTRUCT_FLAGS(_16, _rel, _normal, 0)
 #define _rel32  CONSTRUCT_FLAGS(_32, _rel, _normal, 0)

Index: backend/ptrntab.c ===================================================================
--- backend/ptrntab.c   (revision 795)
+++ backend/ptrntab.c   (working copy)
@@ -711,9 +711,11 @@
         { 0xf6, _0|_modnot1,            _rm8,   _imm8 },
         { 0xf7, _0|_16_bit|_modnot1,    _rm16,  _imm16 },
         { 0xf7, _0|_32_bit|_modnot1,    _rm32,  _imm32 },
+        { 0xf7, _0|_64_bit|_modnot1,    _rm64,  _imm64 },
         { 0x84, _r|_modnot1,            _rm8,   _r8 },
         { 0x85, _r|_16_bit|_modnot1,    _rm16,  _r16 },
         { 0x85, _r|_32_bit|_modnot1,    _rm32,  _r32 },
+        { 0x85, _r|_64_bit|_modnot1,    _rm64,  _r64 },
         { ASM_END, 0, 0, 0 }
 };
 PTRNTAB2  aptb2XADD[] = /* XADD */ {                    // 486 only instruction


I haven't tested to see if these changes are properly denied to 32 bit mode builds.

Later,
Brad