[Issue 5264] x86_64 changes for druntime 2

2010-12-08 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5264


Brad Roberts  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


--- Comment #7 from Brad Roberts  2010-12-08 00:33:38 PST 
---
All of these changes have been checked in.  This doesn't mean that it work,
just that it builds now. :)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5264] x86_64 changes for druntime 2

2010-12-02 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5264


Brad Roberts  changed:

   What|Removed |Added

 Attachment #830 is|0   |1
   obsolete||


--- Comment #6 from Brad Roberts  2010-12-02 02:53:29 PST 
---
Created an attachment (id=835)
remaining changes to pass semantic checks of druntime

(actually not all, see also bug 5263 for intrinsic cleanup)

This time I ran the druntime and phobos unittests on 32 bit.  They pass.  The
64 bit tests can't be run yet as there's still dmd codgen bugs while building
druntime.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5264] x86_64 changes for druntime 2

2010-11-28 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5264



--- Comment #5 from Brad Roberts  2010-11-28 14:49:52 PST 
---
Looks like the cause of #1 is that only dmd 1 got one of the big vararg related
change sets:

http://www.dsource.org/projects/dmd/changeset/717

Walter's merging those into dmd2 soon.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5264] x86_64 changes for druntime 2

2010-11-25 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5264



--- Comment #4 from Brad Roberts  2010-11-25 15:04:41 PST 
---
I'm splitting #3 into a standalone bug report.  dmd-1.x exhibits the same
problem and it's unrelated to druntime at all.  New bug 5275.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5264] x86_64 changes for druntime 2

2010-11-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5264



--- Comment #3 from Brad Roberts  2010-11-24 02:32:54 PST 
---
for #3, call cleanup code in cod1.c funccall():

2936 if (tym1 == TYhfunc)
2937 {   // Hidden parameter is popped off by the callee
2938 c = genadjesp(c, -4);
2939 stackpush -= 4;

This code isn't aware of the 32 vs 64 bit calling convention differences yet?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5264] x86_64 changes for druntime 2

2010-11-24 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5264



--- Comment #2 from Brad Roberts  2010-11-24 01:35:00 PST 
---
ok, debugging #3.  There's actually a couple of different assert locations,
though I suspect they're all related.  If the fix for this reduction doesn't
solve all of them, I'll re-reduce the next one.

=
module hrm;

struct BlkInfo { size_t size; }

extern (C) BlkInfo gc_qalloc(size_t sz, uint ba);

void __setArrayAllocLength(ref BlkInfo info)
{
if (info.size) {}
}

extern (C) void foo()
{
BlkInfo info = gc_qalloc(0, 0);
__setArrayAllocLength(info);
}
==

$ ../dmd-trunk/src/dmd -c -m64 hrm.d
Internal error: backend/cod1.c 2554

Building in 32 bit mode (without -m64) works just fine.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 5264] x86_64 changes for druntime 2

2010-11-23 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5264


Brad Roberts  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|s...@invisibleduck.org  |bra...@puremagic.com


--- Comment #1 from Brad Roberts  2010-11-23 23:15:13 PST 
---
Ok, for #2, I think the right answer is to change _d_arrayappendcT to this:

extern (C) void[] _d_arrayappendcT(TypeInfo ti, Array *x, ...)
{
version(X86)
{  
byte *argp = cast(byte*)(&ti + 2);
return _d_arrayappendT(ti, x, argp[0..1]);
}
else version(X86_64)
{  
va_list ap;
va_start(ap, __va_argsave);
byte[] argp;
va_arg(ap, ti.next, argp);
return _d_arrayappendT(ti, x, argp);
}
else
static assert(false, "unknown version");
}

Builds at least, but can't test it yet.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---