Brad Roberts
Posted in reply to Brad Roberts
| 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
|