[llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.td

2006-12-28 Thread Rafael Espindola


Changes in directory llvm/lib/Target/ARM:

ARMInstrInfo.td updated: 1.80 -> 1.81
---
Log message:

remove duplicated line
bug noticed by Lauro


---
Diffs of the changes:  (+0 -1)

 ARMInstrInfo.td |1 -
 1 files changed, 1 deletion(-)


Index: llvm/lib/Target/ARM/ARMInstrInfo.td
diff -u llvm/lib/Target/ARM/ARMInstrInfo.td:1.80 
llvm/lib/Target/ARM/ARMInstrInfo.td:1.81
--- llvm/lib/Target/ARM/ARMInstrInfo.td:1.80Tue Dec 26 13:30:42 2006
+++ llvm/lib/Target/ARM/ARMInstrInfo.td Thu Dec 28 06:51:40 2006
@@ -344,7 +344,6 @@
 
 // zextload bool -> zextload byte
 def : Pat<(i32 (zextloadi1 IntRegs:$addr)), (LDRB IntRegs:$addr)>;
-def : Pat<(i32 (zextloadi1 IntRegs:$addr)), (LDRB IntRegs:$addr)>;
 
 // truncstore bool -> truncstore byte.
 def : Pat<(truncstorei1 IntRegs:$src, IntRegs:$addr),



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/docs/LangRef.html

2006-12-28 Thread Reid Spencer


Changes in directory llvm/docs:

LangRef.html updated: 1.179 -> 1.180
---
Log message:

Preview of new calling conventions: cextcc and csretextcc to handle explicit
sign and zero extension in function calls.


---
Diffs of the changes:  (+27 -2)

 LangRef.html |   29 +++--
 1 files changed, 27 insertions(+), 2 deletions(-)


Index: llvm/docs/LangRef.html
diff -u llvm/docs/LangRef.html:1.179 llvm/docs/LangRef.html:1.180
--- llvm/docs/LangRef.html:1.179Fri Dec  8 11:13:00 2006
+++ llvm/docs/LangRef.html  Thu Dec 28 10:55:55 2006
@@ -519,9 +519,26 @@
   This calling convention (the default if no other calling convention is
   specified) matches the target C calling conventions.  This calling convention
   supports varargs function calls and tolerates some mismatch in the declared
-  prototype and implemented declaration of the function (as does normal C).
+  prototype and implemented declaration of the function (as does normal C). For
+  integer arguments less than 32-bits, the value will be sign-extended to
+  32-bits before the call is made. If zero-extension is required, use the
+  cextcc calling convention.
   
 
+  "cextcc(bitmask)" - The C with explicit extend calling 
+convention :
+  This calling convention is exactly like the C calling convention except
+  that it is parameterized to provide a bitmask that indicates how
+  integer arguments of less than 32-bits should be extended. A zero bit
+  indicates zero-extension while a 1-bit indicates sign-extension. The least
+  significant bit always corresponds to the return type of the function. The
+  bits in the bitmask are assigned to the integer parameters of the 
+  function that are smaller than 32-bits. For example, a bitmask of value
+  5 (0b0101) indicates that the return value is to be sign extended, the first
+  small integer argument is to be zero extended and the second small integer
+  argument is to be sign extended.
+  
+
   "csretcc" - The C struct return calling convention:
 
   This calling convention matches the target C calling conventions, except
@@ -535,6 +552,14 @@
   pointer to a struct as the first argument.
   
 
+  "csretextcc(bitmask)" - The C struct return with explicit 
+extend calling convention:
+  This calling convention is exactly like the csret calling
+  convention except that it is parameterized to provide a bitmask 
+  that indicates how integer arguments of less than 32-bits should be extended.
+  A zero bit indicates zero-extension while a 1-bit indicates sign-extension.
+  
+  
   "fastcc" - The fast calling convention:
 
   This calling convention attempts to make calls as fast as possible
@@ -4468,7 +4493,7 @@
 
   mailto:[EMAIL PROTECTED]">Chris Lattner
   http://llvm.org";>The LLVM Compiler Infrastructure
-  Last modified: $Date: 2006/12/08 17:13:00 $
+  Last modified: $Date: 2006/12/28 16:55:55 $
 
 
 



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp ARMInstrInfo.td

2006-12-28 Thread Lauro Ramos Venancio


Changes in directory llvm/lib/Target/ARM:

ARMISelDAGToDAG.cpp updated: 1.92 -> 1.93
ARMInstrInfo.td updated: 1.81 -> 1.82
---
Log message:

Implement SELECT_CC (f32/f64) for ARM.


---
Diffs of the changes:  (+16 -2)

 ARMISelDAGToDAG.cpp |4 +++-
 ARMInstrInfo.td |   14 +-
 2 files changed, 16 insertions(+), 2 deletions(-)


Index: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
diff -u llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.92 
llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.93
--- llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.92Thu Dec 14 12:58:37 2006
+++ llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp Thu Dec 28 07:11:14 2006
@@ -73,6 +73,8 @@
   setOperationAction(ISD::SETCC, MVT::f64, Expand);
 
   setOperationAction(ISD::SELECT_CC, MVT::i32, Custom);
+  setOperationAction(ISD::SELECT_CC, MVT::f32, Custom);
+  setOperationAction(ISD::SELECT_CC, MVT::f64, Custom);
 
   setOperationAction(ISD::MEMMOVE, MVT::Other, Expand);
   setOperationAction(ISD::MEMSET, MVT::Other, Expand);
@@ -745,7 +747,7 @@
   SDOperand Cmp;
   SDOperand ARMCC;
   LowerCMP(Cmp, ARMCC, LHS, RHS, CC, DAG);
-  return DAG.getNode(ARMISD::SELECT, MVT::i32, TrueVal, FalseVal, ARMCC, Cmp);
+  return DAG.getNode(ARMISD::SELECT, Op.getValueType(), TrueVal, FalseVal, 
ARMCC, Cmp);
 }
 
 static SDOperand LowerBR_CC(SDOperand Op, SelectionDAG &DAG) {


Index: llvm/lib/Target/ARM/ARMInstrInfo.td
diff -u llvm/lib/Target/ARM/ARMInstrInfo.td:1.81 
llvm/lib/Target/ARM/ARMInstrInfo.td:1.82
--- llvm/lib/Target/ARM/ARMInstrInfo.td:1.81Thu Dec 28 06:51:40 2006
+++ llvm/lib/Target/ARM/ARMInstrInfo.td Thu Dec 28 07:11:14 2006
@@ -102,7 +102,7 @@
 def retflag: SDNode<"ARMISD::RET_FLAG", SDTRet,
   [SDNPHasChain, SDNPOptInFlag]>;
 
-def SDTarmselect   : SDTypeProfile<1, 3, [SDTCisSameAs<0, 1>, SDTCisSameAs<0, 
2>, SDTCisInt<0>, SDTCisVT<2, i32>]>;
+def SDTarmselect   : SDTypeProfile<1, 3, [SDTCisSameAs<0, 1>, SDTCisSameAs<0, 
2>]>;
 def armselect  : SDNode<"ARMISD::SELECT", SDTarmselect, [SDNPInFlag, 
SDNPOutFlag]>;
 
 def SDTarmfmstat   : SDTypeProfile<0, 0, []>;
@@ -209,6 +209,18 @@
 "mov$cc $dst, $true",
 [(set IntRegs:$dst, (armselect addr_mode1:$true,
   IntRegs:$false, imm:$cc))]>;
+
+  def fcpyscond : InstARM<(ops FPRegs:$dst, FPRegs:$false,
+FPRegs:$true, CCOp:$cc),
+"fcpys$cc $dst, $true",
+[(set FPRegs:$dst, (armselect FPRegs:$true,
+  FPRegs:$false, imm:$cc))]>;
+
+  def fcpydcond : InstARM<(ops DFPRegs:$dst, DFPRegs:$false,
+DFPRegs:$true, CCOp:$cc),
+"fcpyd$cc $dst, $true",
+[(set DFPRegs:$dst, (armselect DFPRegs:$true,
+  DFPRegs:$false, imm:$cc))]>;
 }
 
 def MUL : IntBinOp<"mul", mul>;



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.td

2006-12-28 Thread Lauro Ramos Venancio


Changes in directory llvm/lib/Target/ARM:

ARMInstrInfo.td updated: 1.79 -> 1.80
---
Log message:

This patch defines extloadi1 and fixes an internal compiler error on 
arm.


---
Diffs of the changes:  (+3 -0)

 ARMInstrInfo.td |3 +++
 1 files changed, 3 insertions(+)


Index: llvm/lib/Target/ARM/ARMInstrInfo.td
diff -u llvm/lib/Target/ARM/ARMInstrInfo.td:1.79 
llvm/lib/Target/ARM/ARMInstrInfo.td:1.80
--- llvm/lib/Target/ARM/ARMInstrInfo.td:1.79Tue Dec 12 11:10:13 2006
+++ llvm/lib/Target/ARM/ARMInstrInfo.td Tue Dec 26 13:30:42 2006
@@ -339,6 +339,9 @@
 def : Pat<(extloadi16 IntRegs:$addr),
   (LDRH IntRegs:$addr)>;
 
+// extload bool -> extload byte
+def : Pat<(extloadi1 IntRegs:$addr), (LDRB IntRegs:$addr)>;
+
 // zextload bool -> zextload byte
 def : Pat<(i32 (zextloadi1 IntRegs:$addr)), (LDRB IntRegs:$addr)>;
 def : Pat<(i32 (zextloadi1 IntRegs:$addr)), (LDRB IntRegs:$addr)>;



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/ARM/ARMTargetAsmInfo.cpp

2006-12-28 Thread Lauro Ramos Venancio


Changes in directory llvm/lib/Target/ARM:

ARMTargetAsmInfo.cpp updated: 1.2 -> 1.3
---
Log message:

Define StaticCtorsSection and StaticDtorsSection for ARM.


---
Diffs of the changes:  (+2 -0)

 ARMTargetAsmInfo.cpp |2 ++
 1 files changed, 2 insertions(+)


Index: llvm/lib/Target/ARM/ARMTargetAsmInfo.cpp
diff -u llvm/lib/Target/ARM/ARMTargetAsmInfo.cpp:1.2 
llvm/lib/Target/ARM/ARMTargetAsmInfo.cpp:1.3
--- llvm/lib/Target/ARM/ARMTargetAsmInfo.cpp:1.2Wed Dec  6 07:35:10 2006
+++ llvm/lib/Target/ARM/ARMTargetAsmInfo.cppThu Dec 28 07:13:00 2006
@@ -24,4 +24,6 @@
   ConstantPoolSection = "\t.text\n";
   AlignmentIsInBytes = false;
   WeakRefDirective = "\t.weak\t";
+  StaticCtorsSection = "\t.section .ctors,\"aw\",%progbits";
+  StaticDtorsSection = "\t.section .dtors,\"aw\",%progbits";
 }



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/Instructions.h

2006-12-28 Thread Reid Spencer


Changes in directory llvm/include/llvm:

Instructions.h updated: 1.48 -> 1.49
---
Log message:

Doxygenify a comment.


---
Diffs of the changes:  (+2 -1)

 Instructions.h |3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)


Index: llvm/include/llvm/Instructions.h
diff -u llvm/include/llvm/Instructions.h:1.48 
llvm/include/llvm/Instructions.h:1.49
--- llvm/include/llvm/Instructions.h:1.48   Sat Dec 23 00:05:40 2006
+++ llvm/include/llvm/Instructions.hThu Dec 28 22:10:59 2006
@@ -729,7 +729,8 @@
 return static_cast(dyn_cast(getOperand(0)));
   }
 
-  // getCalledValue - Get a pointer to a method that is invoked by this inst.
+  /// getCalledValue - Get a pointer to the function that is invoked by this 
+  /// instruction
   inline const Value *getCalledValue() const { return getOperand(0); }
   inline   Value *getCalledValue()   { return getOperand(0); }
 



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/DerivedTypes.h

2006-12-28 Thread Reid Spencer


Changes in directory llvm/include/llvm:

DerivedTypes.h updated: 1.73 -> 1.74
---
Log message:

Make a variable private now that the conditions requiring it to be
protected have been removed.


---
Diffs of the changes:  (+0 -7)

 DerivedTypes.h |7 ---
 1 files changed, 7 deletions(-)


Index: llvm/include/llvm/DerivedTypes.h
diff -u llvm/include/llvm/DerivedTypes.h:1.73 
llvm/include/llvm/DerivedTypes.h:1.74
--- llvm/include/llvm/DerivedTypes.h:1.73   Fri Dec  8 12:06:14 2006
+++ llvm/include/llvm/DerivedTypes.hThu Dec 28 22:12:03 2006
@@ -80,13 +80,6 @@
 
   FunctionType(const FunctionType &);   // Do not implement
   const FunctionType &operator=(const FunctionType &);  // Do not implement
-protected:
-  /// This should really be private, but it squelches a bogus warning
-  /// from GCC to make them protected:  warning: `class FunctionType' only
-  /// defines private constructors and has no friends
-  ///
-  /// Private ctor - Only can be created by a static member...
-  ///
   FunctionType(const Type *Result, const std::vector &Params,
bool IsVarArgs);
 



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits