Wiki Roadmap Timeline Tickets New Ticket Source Search Help / Guide About Trac Login

Changeset 739:1ae94fb1dbbd

Show
Ignore:
Timestamp:
10/30/08 05:16:37 (2 months ago)
Author:
Christian Kamm <kamm incasoftware de>
branch:
default
Message:

Fix accidental double-inreg caused by shared TupleType?. Enabled inreg by default.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • dmd/mtype.c

    r723 r739  
    34553455    } 
    34563456    if (t->ty == Ttuple) 
    3457         *pt = t
     3457        *pt = t->syntaxCopy()
    34583458    else 
    34593459        *pt = t->merge(); 
  • gen/functions.cpp

    r724 r739  
    204204            // FIXME: struct are not passed in EAX yet 
    205205 
     206            int n_inreg = f->reverseParams ? n - 1 : 0; 
     207            Argument* arg = Argument::getNth(f->parameters, n_inreg); 
     208 
    206209            // if there is a implicit context parameter, pass it in EAX 
    207210            if (usesthis || usesnest) 
    208211            { 
    209212                f->thisAttrs |= llvm::Attribute::InReg; 
     213                assert((!arg || (arg->llvmAttrs & llvm::Attribute::InReg) == 0) && "can't have two inreg args!"); 
    210214            } 
    211215            // otherwise check the first formal parameter 
    212216            else 
    213217            { 
    214                 int inreg = f->reverseParams ? n - 1 : 0; 
    215                 Argument* arg = Argument::getNth(f->parameters, inreg); 
    216218                Type* t = arg->type->toBasetype(); 
    217219 
     
    224226                { 
    225227                    arg->llvmAttrs |= llvm::Attribute::InReg; 
     228                    assert((f->thisAttrs & llvm::Attribute::InReg) == 0 && "can't have two inreg args!"); 
    226229                } 
    227230            } 
  • premake.lua

    r730 r739  
    4040-- x86 ABI support 
    4141X86_REVERSE_PARAMS = 1 
    42 X86_PASS_IN_EAX = 0 --disabled for now 
     42X86_PASS_IN_EAX = 1 
    4343 
    4444-- D version - don't change these !!! 
Copyright © 2008, LDC Development Team.