[llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.td
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
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
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
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
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
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
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