X86RegisterInfo.td

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

X86RegisterInfo.td

Bill Wendling
In the X86RegisterInfo.td file, RST is defined like this:

// Floating point stack registers (these are not allocatable by the
// register allocator - the floating point stackifier is responsible
// for transforming FPn allocations to STn registers)
def RST : RegisterClass<"X86", [f64], 32,
                         [ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7]> {
     let MethodProtos = [{
     iterator allocation_order_end(const MachineFunction &MF) const;
   }];
   let MethodBodies = [{
     RSTClass::iterator
     RSTClass::allocation_order_end(const MachineFunction &MF) const {
       return begin();
     }
   }];
}

Is the "begin()" in there correct? Or should it maybe be "end()"?

Thanks!
-bw
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: X86RegisterInfo.td

Chris Lattner
On Sat, 24 Feb 2007, Bill Wendling wrote:
> In the X86RegisterInfo.td file, RST is defined like this:
>
> // Floating point stack registers (these are not allocatable by the
> // register allocator - the floating point stackifier is responsible
> // for transforming FPn allocations to STn registers)
> def RST : RegisterClass<"X86", [f64], 32,

> Is the "begin()" in there correct? Or should it maybe be "end()"?

Yep, it is right.  The FP0-x registers are allocatable for the FP stack,
the RST registers are not.

-Chris

--
http://nondot.org/sabre/
http://llvm.org/
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev