From owner-svn-src-projects@FreeBSD.ORG Sun Apr 4 08:47:36 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 32CC21065674; Sun, 4 Apr 2010 08:47:36 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1BFEB8FC08; Sun, 4 Apr 2010 08:47:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o348laiC054697; Sun, 4 Apr 2010 08:47:36 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o348lZrV054666; Sun, 4 Apr 2010 08:47:35 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <201004040847.o348lZrV054666@svn.freebsd.org> From: Roman Divacky Date: Sun, 4 Apr 2010 08:47:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206157 - in projects/clangbsd: contrib/llvm contrib/llvm/autoconf contrib/llvm/docs contrib/llvm/docs/tutorial contrib/llvm/examples/OCaml-Kaleidoscope/Chapter6 contrib/llvm/examples/O... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Apr 2010 08:47:36 -0000 Author: rdivacky Date: Sun Apr 4 08:47:34 2010 New Revision: 206157 URL: http://svn.freebsd.org/changeset/base/206157 Log: Merge from vendor. Added: projects/clangbsd/contrib/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp - copied unchanged from r206125, vendor/llvm/dist/lib/CodeGen/MachineFunctionPrinterPass.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/Disassembler/ - copied from r206125, vendor/llvm/dist/lib/Target/ARM/Disassembler/ projects/clangbsd/contrib/llvm/lib/Target/X86/SSEDomainFix.cpp - copied unchanged from r206125, vendor/llvm/dist/lib/Target/X86/SSEDomainFix.cpp projects/clangbsd/contrib/llvm/lib/VMCore/DebugLoc.cpp - copied unchanged from r206125, vendor/llvm/dist/lib/VMCore/DebugLoc.cpp projects/clangbsd/contrib/llvm/lib/VMCore/LLVMContextImpl.cpp - copied unchanged from r206125, vendor/llvm/dist/lib/VMCore/LLVMContextImpl.cpp projects/clangbsd/contrib/llvm/test/Bitcode/sse41_pmulld.ll - copied unchanged from r206125, vendor/llvm/dist/test/Bitcode/sse41_pmulld.ll projects/clangbsd/contrib/llvm/test/Bitcode/sse41_pmulld.ll.bc - copied unchanged from r206125, vendor/llvm/dist/test/Bitcode/sse41_pmulld.ll.bc projects/clangbsd/contrib/llvm/test/CodeGen/CellSPU/bigstack.ll - copied unchanged from r206125, vendor/llvm/dist/test/CodeGen/CellSPU/bigstack.ll projects/clangbsd/contrib/llvm/test/CodeGen/Generic/2010-ZeroSizedArg.ll - copied unchanged from r206125, vendor/llvm/dist/test/CodeGen/Generic/2010-ZeroSizedArg.ll projects/clangbsd/contrib/llvm/test/CodeGen/PowerPC/2010-04-01-MachineCSEBug.ll - copied unchanged from r206125, vendor/llvm/dist/test/CodeGen/PowerPC/2010-04-01-MachineCSEBug.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/memset-3.ll - copied unchanged from r206125, vendor/llvm/dist/test/CodeGen/X86/memset-3.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/pmulld.ll - copied unchanged from r206125, vendor/llvm/dist/test/CodeGen/X86/pmulld.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/vec_insert-4.ll - copied unchanged from r206125, vendor/llvm/dist/test/CodeGen/X86/vec_insert-4.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/vec_insert-9.ll - copied unchanged from r206125, vendor/llvm/dist/test/CodeGen/X86/vec_insert-9.ll projects/clangbsd/contrib/llvm/test/DebugInfo/2010-03-22-CU-HighLow.ll - copied unchanged from r206125, vendor/llvm/dist/test/DebugInfo/2010-03-22-CU-HighLow.ll projects/clangbsd/contrib/llvm/test/DebugInfo/2010-03-24-MemberFn.ll - copied unchanged from r206125, vendor/llvm/dist/test/DebugInfo/2010-03-24-MemberFn.ll projects/clangbsd/contrib/llvm/test/DebugInfo/2010-03-30-InvalidDbgInfoCrash.ll - copied unchanged from r206125, vendor/llvm/dist/test/DebugInfo/2010-03-30-InvalidDbgInfoCrash.ll projects/clangbsd/contrib/llvm/test/FrontendC++/2010-03-22-empty-baseclass.cpp - copied unchanged from r206125, vendor/llvm/dist/test/FrontendC++/2010-03-22-empty-baseclass.cpp projects/clangbsd/contrib/llvm/test/MC/Disassembler/arm-tests.txt - copied unchanged from r206125, vendor/llvm/dist/test/MC/Disassembler/arm-tests.txt projects/clangbsd/contrib/llvm/test/MC/Disassembler/neon-tests.txt - copied unchanged from r206125, vendor/llvm/dist/test/MC/Disassembler/neon-tests.txt projects/clangbsd/contrib/llvm/test/MC/Disassembler/thumb-tests.txt - copied unchanged from r206125, vendor/llvm/dist/test/MC/Disassembler/thumb-tests.txt projects/clangbsd/contrib/llvm/test/TableGen/2010-03-24-PrematureDefaults.td - copied unchanged from r206125, vendor/llvm/dist/test/TableGen/2010-03-24-PrematureDefaults.td projects/clangbsd/contrib/llvm/test/Transforms/IndVarSimplify/crash.ll - copied unchanged from r206125, vendor/llvm/dist/test/Transforms/IndVarSimplify/crash.ll projects/clangbsd/contrib/llvm/test/Transforms/IndVarSimplify/dangling-use.ll - copied unchanged from r206125, vendor/llvm/dist/test/Transforms/IndVarSimplify/dangling-use.ll projects/clangbsd/contrib/llvm/test/Transforms/IndVarSimplify/floating-point-iv.ll - copied unchanged from r206125, vendor/llvm/dist/test/Transforms/IndVarSimplify/floating-point-iv.ll projects/clangbsd/contrib/llvm/test/Transforms/Inline/noinline.ll - copied unchanged from r206125, vendor/llvm/dist/test/Transforms/Inline/noinline.ll projects/clangbsd/contrib/llvm/test/Transforms/SimplifyCFG/2010-03-30-InvokeCrash.ll - copied unchanged from r206125, vendor/llvm/dist/test/Transforms/SimplifyCFG/2010-03-30-InvokeCrash.ll projects/clangbsd/contrib/llvm/tools/clang/include/clang/AST/DependentDiagnostic.h - copied unchanged from r206126, vendor/clang/dist/include/clang/AST/DependentDiagnostic.h projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/AggExprVisitor.cpp - copied unchanged from r206126, vendor/clang/dist/lib/Checker/AggExprVisitor.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayout.h - copied unchanged from r206126, vendor/clang/dist/lib/CodeGen/CGRecordLayout.h projects/clangbsd/contrib/llvm/tools/clang/lib/Headers/wmmintrin.h - copied unchanged from r206126, vendor/clang/dist/lib/Headers/wmmintrin.h projects/clangbsd/contrib/llvm/tools/clang/test/CXX/basic/basic.stc/basic.stc.dynamic/p2-noexceptions.cpp - copied unchanged from r206126, vendor/clang/dist/test/CXX/basic/basic.stc/basic.stc.dynamic/p2-noexceptions.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CXX/class.access/class.access.base/p5.cpp - copied unchanged from r206126, vendor/clang/dist/test/CXX/class.access/class.access.base/p5.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CXX/class.derived/class.abstract/p4.cpp - copied unchanged from r206126, vendor/clang/dist/test/CXX/class.derived/class.abstract/p4.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CXX/class.derived/class.abstract/p5.cpp - copied unchanged from r206126, vendor/clang/dist/test/CXX/class.derived/class.abstract/p5.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CXX/class.derived/class.virtual/p2.cpp - copied unchanged from r206126, vendor/clang/dist/test/CXX/class.derived/class.virtual/p2.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CXX/stmt.stmt/stmt.select/p3.cpp - copied unchanged from r206126, vendor/clang/dist/test/CXX/stmt.stmt/stmt.select/p3.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/p9.cpp - copied unchanged from r206126, vendor/clang/dist/test/CXX/temp/temp.fct.spec/temp.deduct/p9.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.type/p17.cpp - copied unchanged from r206126, vendor/clang/dist/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.type/p17.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGen/restrict.c - copied unchanged from r206126, vendor/clang/dist/test/CodeGen/restrict.c projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/copy-initialization.cpp - copied unchanged from r206126, vendor/clang/dist/test/CodeGenCXX/copy-initialization.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/multi-dim-operator-new.cpp - copied unchanged from r206126, vendor/clang/dist/test/CodeGenCXX/multi-dim-operator-new.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/rtti-fundamental.cpp - copied unchanged from r206126, vendor/clang/dist/test/CodeGenCXX/rtti-fundamental.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/template-instantiation.cpp - copied unchanged from r206126, vendor/clang/dist/test/CodeGenCXX/template-instantiation.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/thunks.cpp - copied unchanged from r206126, vendor/clang/dist/test/CodeGenCXX/thunks.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenObjC/complex-property.m - copied unchanged from r206126, vendor/clang/dist/test/CodeGenObjC/complex-property.m projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenObjC/objc2-nonfragile-abi-impl.m - copied unchanged from r206126, vendor/clang/dist/test/CodeGenObjC/objc2-nonfragile-abi-impl.m projects/clangbsd/contrib/llvm/tools/clang/test/Driver/nostdincxx.cpp - copied unchanged from r206126, vendor/clang/dist/test/Driver/nostdincxx.cpp projects/clangbsd/contrib/llvm/tools/clang/test/Headers/c89.c - copied unchanged from r206126, vendor/clang/dist/test/Headers/c89.c projects/clangbsd/contrib/llvm/tools/clang/test/Headers/x86-intrinsics-headers.c - copied unchanged from r206126, vendor/clang/dist/test/Headers/x86-intrinsics-headers.c projects/clangbsd/contrib/llvm/tools/clang/test/Index/print-usrs.c - copied unchanged from r206126, vendor/clang/dist/test/Index/print-usrs.c projects/clangbsd/contrib/llvm/tools/clang/test/Parser/cxx-default-args.cpp - copied unchanged from r206126, vendor/clang/dist/test/Parser/cxx-default-args.cpp projects/clangbsd/contrib/llvm/tools/clang/test/Sema/attr-format.c - copied unchanged from r206126, vendor/clang/dist/test/Sema/attr-format.c projects/clangbsd/contrib/llvm/tools/clang/test/Sema/attr-sentinel.c - copied unchanged from r206126, vendor/clang/dist/test/Sema/attr-sentinel.c projects/clangbsd/contrib/llvm/tools/clang/test/Sema/warn-gnu-designators.c - copied unchanged from r206126, vendor/clang/dist/test/Sema/warn-gnu-designators.c projects/clangbsd/contrib/llvm/tools/clang/test/SemaCXX/PR6618.cpp - copied unchanged from r206126, vendor/clang/dist/test/SemaCXX/PR6618.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaCXX/new-delete-predefined-decl-2.cpp - copied unchanged from r206126, vendor/clang/dist/test/SemaCXX/new-delete-predefined-decl-2.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/class-extension-after-implementation.m - copied unchanged from r206126, vendor/clang/dist/test/SemaObjC/class-extension-after-implementation.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/ivar-in-class-extension-error.m - copied unchanged from r206126, vendor/clang/dist/test/SemaObjC/ivar-in-class-extension-error.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/no-protocol-option-tests.m - copied unchanged from r206126, vendor/clang/dist/test/SemaObjC/no-protocol-option-tests.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/property-in-class-extension.m - copied unchanged from r206126, vendor/clang/dist/test/SemaObjC/property-in-class-extension.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaTemplate/instantiate-elab-type-specifier.cpp - copied unchanged from r206126, vendor/clang/dist/test/SemaTemplate/instantiate-elab-type-specifier.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaTemplate/instantiate-function-params.cpp - copied unchanged from r206126, vendor/clang/dist/test/SemaTemplate/instantiate-function-params.cpp projects/clangbsd/contrib/llvm/tools/clang/www/analyzer/downloads/ - copied from r206126, vendor/clang/dist/www/analyzer/downloads/ projects/clangbsd/contrib/llvm/utils/TableGen/ARMDecoderEmitter.cpp - copied unchanged from r206125, vendor/llvm/dist/utils/TableGen/ARMDecoderEmitter.cpp projects/clangbsd/contrib/llvm/utils/TableGen/ARMDecoderEmitter.h - copied unchanged from r206125, vendor/llvm/dist/utils/TableGen/ARMDecoderEmitter.h projects/clangbsd/contrib/llvm/utils/lit/lit/LitTestCase.py - copied unchanged from r206125, vendor/llvm/dist/utils/lit/lit/LitTestCase.py projects/clangbsd/usr.bin/clang/lib/libllvmarmdisassembler/ projects/clangbsd/usr.bin/clang/lib/libllvmarmdisassembler/Makefile Deleted: projects/clangbsd/contrib/llvm/test/CodeGen/X86/vec_insert_4.ll projects/clangbsd/contrib/llvm/test/Transforms/IndVarSimplify/2008-11-03-Floating.ll projects/clangbsd/contrib/llvm/test/Transforms/IndVarSimplify/2008-11-17-Floating.ll projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.h projects/clangbsd/contrib/llvm/tools/clang/test/CodeGen/rdr-6098585-default-after-caserange.c projects/clangbsd/contrib/llvm/tools/clang/test/CodeGen/rdr-6098585-default-fallthrough-to-caserange.c projects/clangbsd/contrib/llvm/tools/clang/test/CodeGen/rdr-6098585-empty-case-range.c projects/clangbsd/contrib/llvm/tools/clang/test/CodeGen/rdr-6098585-fallthrough-to-empty-range.c projects/clangbsd/contrib/llvm/tools/clang/test/CodeGen/rdr-6098585-unsigned-caserange.c projects/clangbsd/contrib/llvm/tools/clang/test/Preprocessor/macro_disable2.c projects/clangbsd/contrib/llvm/tools/clang/test/Preprocessor/macro_disable3.c projects/clangbsd/contrib/llvm/tools/clang/test/Preprocessor/macro_disable4.c projects/clangbsd/contrib/llvm/tools/clang/test/Sema/format-attr-pr4470.c projects/clangbsd/contrib/llvm/tools/clang/test/Sema/format-attribute-printf0.c projects/clangbsd/contrib/llvm/tools/clang/test/Sema/format-attribute.c projects/clangbsd/contrib/llvm/tools/clang/test/Sema/function-pointer-sentinel-attribute.c projects/clangbsd/contrib/llvm/tools/clang/test/Sema/function-sentinel-attr.c projects/clangbsd/contrib/llvm/tools/clang/test/Sema/x86-intrinsics-headers.c Modified: projects/clangbsd/contrib/llvm/Makefile projects/clangbsd/contrib/llvm/Makefile.rules projects/clangbsd/contrib/llvm/autoconf/configure.ac projects/clangbsd/contrib/llvm/configure projects/clangbsd/contrib/llvm/docs/CodeGenerator.html projects/clangbsd/contrib/llvm/docs/ProgrammersManual.html projects/clangbsd/contrib/llvm/docs/ReleaseNotes.html projects/clangbsd/contrib/llvm/docs/SourceLevelDebugging.html projects/clangbsd/contrib/llvm/docs/TableGenFundamentals.html projects/clangbsd/contrib/llvm/docs/tutorial/OCamlLangImpl6.html projects/clangbsd/contrib/llvm/docs/tutorial/OCamlLangImpl7.html projects/clangbsd/contrib/llvm/examples/OCaml-Kaleidoscope/Chapter6/myocamlbuild.ml projects/clangbsd/contrib/llvm/examples/OCaml-Kaleidoscope/Chapter7/myocamlbuild.ml projects/clangbsd/contrib/llvm/include/llvm/ADT/PointerUnion.h projects/clangbsd/contrib/llvm/include/llvm/ADT/SmallVector.h projects/clangbsd/contrib/llvm/include/llvm/ADT/Statistic.h projects/clangbsd/contrib/llvm/include/llvm/ADT/StringMap.h projects/clangbsd/contrib/llvm/include/llvm/Analysis/DebugInfo.h projects/clangbsd/contrib/llvm/include/llvm/Analysis/Dominators.h projects/clangbsd/contrib/llvm/include/llvm/Analysis/LoopPass.h projects/clangbsd/contrib/llvm/include/llvm/Assembly/PrintModulePass.h projects/clangbsd/contrib/llvm/include/llvm/BasicBlock.h projects/clangbsd/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h projects/clangbsd/contrib/llvm/include/llvm/CallGraphSCCPass.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/DwarfWriter.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/LiveInterval.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/LiveStackAnalysis.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineFunction.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineFunctionPass.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineInstr.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineOperand.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/Passes.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/SelectionDAGISel.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/SlotIndexes.h projects/clangbsd/contrib/llvm/include/llvm/Function.h projects/clangbsd/contrib/llvm/include/llvm/InlineAsm.h projects/clangbsd/contrib/llvm/include/llvm/Instruction.h projects/clangbsd/contrib/llvm/include/llvm/Instructions.h projects/clangbsd/contrib/llvm/include/llvm/Intrinsics.td projects/clangbsd/contrib/llvm/include/llvm/IntrinsicsARM.td projects/clangbsd/contrib/llvm/include/llvm/IntrinsicsPowerPC.td projects/clangbsd/contrib/llvm/include/llvm/IntrinsicsX86.td projects/clangbsd/contrib/llvm/include/llvm/LLVMContext.h projects/clangbsd/contrib/llvm/include/llvm/MC/MCAsmLayout.h projects/clangbsd/contrib/llvm/include/llvm/MC/MCAssembler.h projects/clangbsd/contrib/llvm/include/llvm/MC/MCContext.h projects/clangbsd/contrib/llvm/include/llvm/MC/MCExpr.h projects/clangbsd/contrib/llvm/include/llvm/MC/MCInst.h projects/clangbsd/contrib/llvm/include/llvm/MC/MCObjectWriter.h projects/clangbsd/contrib/llvm/include/llvm/MC/MCSection.h projects/clangbsd/contrib/llvm/include/llvm/MC/MCStreamer.h projects/clangbsd/contrib/llvm/include/llvm/MC/MachObjectWriter.h projects/clangbsd/contrib/llvm/include/llvm/Pass.h projects/clangbsd/contrib/llvm/include/llvm/PassManagers.h projects/clangbsd/contrib/llvm/include/llvm/Support/Allocator.h projects/clangbsd/contrib/llvm/include/llvm/Support/CFG.h projects/clangbsd/contrib/llvm/include/llvm/Support/CallSite.h projects/clangbsd/contrib/llvm/include/llvm/Support/Casting.h projects/clangbsd/contrib/llvm/include/llvm/Support/DebugLoc.h projects/clangbsd/contrib/llvm/include/llvm/Support/FileUtilities.h projects/clangbsd/contrib/llvm/include/llvm/Support/IRBuilder.h projects/clangbsd/contrib/llvm/include/llvm/Support/MathExtras.h projects/clangbsd/contrib/llvm/include/llvm/Support/SlowOperationInformer.h projects/clangbsd/contrib/llvm/include/llvm/Support/Timer.h projects/clangbsd/contrib/llvm/include/llvm/Support/ValueHandle.h projects/clangbsd/contrib/llvm/include/llvm/Support/raw_ostream.h projects/clangbsd/contrib/llvm/include/llvm/System/Memory.h projects/clangbsd/contrib/llvm/include/llvm/Target/TargetAsmBackend.h projects/clangbsd/contrib/llvm/include/llvm/Target/TargetInstrDesc.h projects/clangbsd/contrib/llvm/include/llvm/Target/TargetLowering.h projects/clangbsd/contrib/llvm/include/llvm/Target/TargetMachine.h projects/clangbsd/contrib/llvm/include/llvm/Target/TargetSelectionDAG.td projects/clangbsd/contrib/llvm/include/llvm/Transforms/Utils/BuildLibCalls.h projects/clangbsd/contrib/llvm/include/llvm/Type.h projects/clangbsd/contrib/llvm/include/llvm/Value.h projects/clangbsd/contrib/llvm/lib/Analysis/CaptureTracking.cpp projects/clangbsd/contrib/llvm/lib/Analysis/DebugInfo.cpp projects/clangbsd/contrib/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp projects/clangbsd/contrib/llvm/lib/Analysis/IPA/GlobalsModRef.cpp projects/clangbsd/contrib/llvm/lib/Analysis/InlineCost.cpp projects/clangbsd/contrib/llvm/lib/Analysis/LiveValues.cpp projects/clangbsd/contrib/llvm/lib/Analysis/LoopPass.cpp projects/clangbsd/contrib/llvm/lib/Analysis/MemoryBuiltins.cpp projects/clangbsd/contrib/llvm/lib/Analysis/ProfileEstimatorPass.cpp projects/clangbsd/contrib/llvm/lib/Analysis/ProfileInfo.cpp projects/clangbsd/contrib/llvm/lib/Analysis/ProfileInfoLoaderPass.cpp projects/clangbsd/contrib/llvm/lib/Analysis/ProfileVerifierPass.cpp projects/clangbsd/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp projects/clangbsd/contrib/llvm/lib/Archive/ArchiveWriter.cpp projects/clangbsd/contrib/llvm/lib/AsmParser/LLLexer.h projects/clangbsd/contrib/llvm/lib/AsmParser/LLParser.cpp projects/clangbsd/contrib/llvm/lib/AsmParser/LLParser.h projects/clangbsd/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp projects/clangbsd/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp projects/clangbsd/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.h projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfWriter.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/BranchFolding.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/CMakeLists.txt projects/clangbsd/contrib/llvm/lib/CodeGen/DwarfEHPrepare.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/LiveInterval.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/LiveStackAnalysis.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/LiveVariables.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/MachineBasicBlock.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/MachineCSE.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/MachineFunction.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/MachineFunctionPass.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/MachineInstr.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/MachineModuleInfo.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/MachineSSAUpdater.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/OptimizeExts.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/PHIElimination.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/PreAllocSplitting.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/RegAllocLocal.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.h projects/clangbsd/contrib/llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h projects/clangbsd/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h projects/clangbsd/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/SimpleRegisterCoalescing.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/VirtRegRewriter.cpp projects/clangbsd/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp projects/clangbsd/contrib/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp projects/clangbsd/contrib/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp projects/clangbsd/contrib/llvm/lib/MC/MCAsmStreamer.cpp projects/clangbsd/contrib/llvm/lib/MC/MCAssembler.cpp projects/clangbsd/contrib/llvm/lib/MC/MCContext.cpp projects/clangbsd/contrib/llvm/lib/MC/MCExpr.cpp projects/clangbsd/contrib/llvm/lib/MC/MCInst.cpp projects/clangbsd/contrib/llvm/lib/MC/MCMachOStreamer.cpp projects/clangbsd/contrib/llvm/lib/MC/MCParser/AsmParser.cpp projects/clangbsd/contrib/llvm/lib/MC/MCSection.cpp projects/clangbsd/contrib/llvm/lib/MC/MachObjectWriter.cpp projects/clangbsd/contrib/llvm/lib/Support/APFloat.cpp projects/clangbsd/contrib/llvm/lib/Support/APInt.cpp projects/clangbsd/contrib/llvm/lib/Support/CommandLine.cpp projects/clangbsd/contrib/llvm/lib/Support/Debug.cpp projects/clangbsd/contrib/llvm/lib/Support/ErrorHandling.cpp projects/clangbsd/contrib/llvm/lib/Support/MemoryBuffer.cpp projects/clangbsd/contrib/llvm/lib/Support/Statistic.cpp projects/clangbsd/contrib/llvm/lib/Support/Timer.cpp projects/clangbsd/contrib/llvm/lib/Support/Triple.cpp projects/clangbsd/contrib/llvm/lib/Support/raw_ostream.cpp projects/clangbsd/contrib/llvm/lib/System/Unix/Mutex.inc projects/clangbsd/contrib/llvm/lib/System/Unix/Path.inc projects/clangbsd/contrib/llvm/lib/System/Win32/Program.inc projects/clangbsd/contrib/llvm/lib/System/Win32/Signals.inc projects/clangbsd/contrib/llvm/lib/Target/ARM/ARM.td projects/clangbsd/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/ARMInstrFormats.td projects/clangbsd/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td projects/clangbsd/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td projects/clangbsd/contrib/llvm/lib/Target/ARM/ARMInstrVFP.td projects/clangbsd/contrib/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/ARMSubtarget.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/ARMSubtarget.h projects/clangbsd/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/AsmPrinter/ARMMCInstLower.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/Makefile projects/clangbsd/contrib/llvm/lib/Target/ARM/NEONPreAllocPass.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/README.txt projects/clangbsd/contrib/llvm/lib/Target/ARM/Thumb1InstrInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/Thumb1RegisterInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/Alpha/AlphaISelLowering.cpp projects/clangbsd/contrib/llvm/lib/Target/Alpha/AlphaInstrInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/Alpha/AlphaLLRP.cpp projects/clangbsd/contrib/llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/Blackfin/BlackfinInstrInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/Blackfin/BlackfinInstrInfo.td projects/clangbsd/contrib/llvm/lib/Target/Blackfin/BlackfinIntrinsics.td projects/clangbsd/contrib/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/CellSPU/SPU.h projects/clangbsd/contrib/llvm/lib/Target/CellSPU/SPUISelDAGToDAG.cpp projects/clangbsd/contrib/llvm/lib/Target/CellSPU/SPUISelLowering.cpp projects/clangbsd/contrib/llvm/lib/Target/CellSPU/SPUInstrInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/CellSPU/SPUInstrInfo.td projects/clangbsd/contrib/llvm/lib/Target/CellSPU/SPURegisterInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/CellSPU/SPURegisterInfo.h projects/clangbsd/contrib/llvm/lib/Target/MBlaze/MBlazeInstrInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/MBlaze/MBlazeIntrinsics.td projects/clangbsd/contrib/llvm/lib/Target/MBlaze/MBlazeRegisterInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/MSIL/MSILWriter.cpp projects/clangbsd/contrib/llvm/lib/Target/MSP430/AsmPrinter/MSP430MCInstLower.cpp projects/clangbsd/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/Mangler.cpp projects/clangbsd/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td projects/clangbsd/contrib/llvm/lib/Target/Mips/MipsInstrInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/PIC16/PIC16DebugInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/PIC16/PIC16InstrInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/PIC16/PIC16Section.cpp projects/clangbsd/contrib/llvm/lib/Target/PIC16/PIC16Section.h projects/clangbsd/contrib/llvm/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/PowerPC/PPCBranchSelector.cpp projects/clangbsd/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp projects/clangbsd/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp projects/clangbsd/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h projects/clangbsd/contrib/llvm/lib/Target/PowerPC/PPCInstrAltivec.td projects/clangbsd/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/Sparc/DelaySlotFiller.cpp projects/clangbsd/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/SystemZ/SystemZInstrFP.td projects/clangbsd/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td projects/clangbsd/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/CMakeLists.txt projects/clangbsd/contrib/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c projects/clangbsd/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h projects/clangbsd/contrib/llvm/lib/Target/X86/X86.h projects/clangbsd/contrib/llvm/lib/Target/X86/X86.td projects/clangbsd/contrib/llvm/lib/Target/X86/X86AsmBackend.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/X86FastISel.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/X86FloatingPointRegKill.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/X86ISelLowering.h projects/clangbsd/contrib/llvm/lib/Target/X86/X86Instr64bit.td projects/clangbsd/contrib/llvm/lib/Target/X86/X86InstrFormats.td projects/clangbsd/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/X86InstrInfo.h projects/clangbsd/contrib/llvm/lib/Target/X86/X86InstrInfo.td projects/clangbsd/contrib/llvm/lib/Target/X86/X86InstrMMX.td projects/clangbsd/contrib/llvm/lib/Target/X86/X86InstrSSE.td projects/clangbsd/contrib/llvm/lib/Target/X86/X86Subtarget.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/X86Subtarget.h projects/clangbsd/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/X86TargetMachine.h projects/clangbsd/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.td projects/clangbsd/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp projects/clangbsd/contrib/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp projects/clangbsd/contrib/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp projects/clangbsd/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp projects/clangbsd/contrib/llvm/lib/Transforms/IPO/Internalize.cpp projects/clangbsd/contrib/llvm/lib/Transforms/IPO/PruneEH.cpp projects/clangbsd/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Scalar/ABCD.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Scalar/CodeGenPrepare.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Scalar/GVN.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Scalar/Reg2Mem.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Utils/AddrModeMatcher.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Utils/BuildLibCalls.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Utils/LowerInvoke.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp projects/clangbsd/contrib/llvm/lib/VMCore/AsmWriter.cpp projects/clangbsd/contrib/llvm/lib/VMCore/AutoUpgrade.cpp projects/clangbsd/contrib/llvm/lib/VMCore/BasicBlock.cpp projects/clangbsd/contrib/llvm/lib/VMCore/CMakeLists.txt projects/clangbsd/contrib/llvm/lib/VMCore/Constants.cpp projects/clangbsd/contrib/llvm/lib/VMCore/ConstantsContext.h projects/clangbsd/contrib/llvm/lib/VMCore/Core.cpp projects/clangbsd/contrib/llvm/lib/VMCore/Function.cpp projects/clangbsd/contrib/llvm/lib/VMCore/Globals.cpp projects/clangbsd/contrib/llvm/lib/VMCore/IRBuilder.cpp projects/clangbsd/contrib/llvm/lib/VMCore/InlineAsm.cpp projects/clangbsd/contrib/llvm/lib/VMCore/Instruction.cpp projects/clangbsd/contrib/llvm/lib/VMCore/Instructions.cpp projects/clangbsd/contrib/llvm/lib/VMCore/LLVMContext.cpp projects/clangbsd/contrib/llvm/lib/VMCore/LLVMContextImpl.h projects/clangbsd/contrib/llvm/lib/VMCore/Metadata.cpp projects/clangbsd/contrib/llvm/lib/VMCore/Module.cpp projects/clangbsd/contrib/llvm/lib/VMCore/Pass.cpp projects/clangbsd/contrib/llvm/lib/VMCore/PassManager.cpp projects/clangbsd/contrib/llvm/lib/VMCore/PrintModulePass.cpp projects/clangbsd/contrib/llvm/lib/VMCore/Type.cpp projects/clangbsd/contrib/llvm/lib/VMCore/Value.cpp projects/clangbsd/contrib/llvm/lib/VMCore/ValueSymbolTable.cpp projects/clangbsd/contrib/llvm/lib/VMCore/Verifier.cpp projects/clangbsd/contrib/llvm/test/CodeGen/ARM/fabss.ll projects/clangbsd/contrib/llvm/test/CodeGen/ARM/fadds.ll projects/clangbsd/contrib/llvm/test/CodeGen/ARM/fdivs.ll projects/clangbsd/contrib/llvm/test/CodeGen/ARM/fmacs.ll projects/clangbsd/contrib/llvm/test/CodeGen/ARM/fmscs.ll projects/clangbsd/contrib/llvm/test/CodeGen/ARM/fmuls.ll projects/clangbsd/contrib/llvm/test/CodeGen/ARM/fnegs.ll projects/clangbsd/contrib/llvm/test/CodeGen/ARM/fnmacs.ll projects/clangbsd/contrib/llvm/test/CodeGen/ARM/fnmscs.ll projects/clangbsd/contrib/llvm/test/CodeGen/ARM/fp_convert.ll projects/clangbsd/contrib/llvm/test/CodeGen/ARM/fsubs.ll projects/clangbsd/contrib/llvm/test/CodeGen/Generic/addr-label.ll projects/clangbsd/contrib/llvm/test/CodeGen/PIC16/2009-07-17-PR4566-pic16.ll projects/clangbsd/contrib/llvm/test/CodeGen/PIC16/2009-11-20-NewNode.ll projects/clangbsd/contrib/llvm/test/CodeGen/PIC16/C16-15.ll projects/clangbsd/contrib/llvm/test/CodeGen/PIC16/global-in-user-section.ll projects/clangbsd/contrib/llvm/test/CodeGen/PIC16/globals.ll projects/clangbsd/contrib/llvm/test/CodeGen/PIC16/sext.ll projects/clangbsd/contrib/llvm/test/CodeGen/PowerPC/eqv-andc-orc-nor.ll projects/clangbsd/contrib/llvm/test/CodeGen/PowerPC/tango.net.ftp.FtpClient.ll projects/clangbsd/contrib/llvm/test/CodeGen/Thumb2/2009-08-04-CoalescerBug.ll projects/clangbsd/contrib/llvm/test/CodeGen/Thumb2/2009-08-04-ScavengerAssert.ll projects/clangbsd/contrib/llvm/test/CodeGen/Thumb2/2009-08-04-SubregLoweringBug.ll projects/clangbsd/contrib/llvm/test/CodeGen/Thumb2/2009-08-04-SubregLoweringBug2.ll projects/clangbsd/contrib/llvm/test/CodeGen/Thumb2/2009-08-04-SubregLoweringBug3.ll projects/clangbsd/contrib/llvm/test/CodeGen/Thumb2/2009-08-07-NeonFPBug.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/2007-01-13-StackPtrIndex.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/2007-04-25-MMX-PADDQ.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/2009-02-05-CoalescerBug.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/2009-02-26-MachineLICMBug.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/2009-11-16-UnfoldMemOpBug.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/byval7.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/coalesce-esp.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/dagcombine-buildvector.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/gather-addresses.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/licm-symbol.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/memcpy-2.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/memset-2.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/memset64-on-x86-32.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/pic.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/pmul.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/postalloc-coalescing.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/pr2659.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/sibcall.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/small-byval-memcpy.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/sse-align-12.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/sse-align-6.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/sse3.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/unaligned-load.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/vec_compare.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/vec_return.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/vec_set.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/vec_shuffle-7.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/vec_shuffle-9.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/vec_shuffle.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/vec_zero.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/vec_zero_cse.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/widen_arith-5.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/widen_cast-2.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/widen_load-2.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/xor-icmp.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/xor.ll projects/clangbsd/contrib/llvm/test/DebugInfo/2009-11-03-InsertExtractValue.ll projects/clangbsd/contrib/llvm/test/Feature/unions.ll projects/clangbsd/contrib/llvm/test/FrontendObjC/2010-03-17-StructRef.m projects/clangbsd/contrib/llvm/test/MC/AsmParser/X86/x86_32-bit_cat.s projects/clangbsd/contrib/llvm/test/MC/AsmParser/X86/x86_32-encoding.s projects/clangbsd/contrib/llvm/test/MC/MachO/absolutize.s projects/clangbsd/contrib/llvm/test/MC/MachO/darwin-x86_64-reloc.s projects/clangbsd/contrib/llvm/test/Transforms/GVN/rle.ll projects/clangbsd/contrib/llvm/test/Transforms/InstCombine/objsize.ll projects/clangbsd/contrib/llvm/test/Transforms/SimplifyLibCalls/StrCpy.ll projects/clangbsd/contrib/llvm/tools/Makefile projects/clangbsd/contrib/llvm/tools/bugpoint/BugDriver.cpp projects/clangbsd/contrib/llvm/tools/bugpoint/BugDriver.h projects/clangbsd/contrib/llvm/tools/clang/CMakeLists.txt projects/clangbsd/contrib/llvm/tools/clang/clang.xcodeproj/project.pbxproj projects/clangbsd/contrib/llvm/tools/clang/examples/clang-interpreter/main.cpp projects/clangbsd/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/AST/CXXInheritance.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/AST/CanonicalType.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/AST/Decl.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/AST/DeclCXX.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/AST/DeclContextInternals.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/AST/DeclFriend.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/AST/DeclTemplate.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/AST/DeclarationName.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/AST/Expr.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/AST/ExprCXX.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/AST/Type.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/AST/TypeLoc.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/AST/TypeNodes.def projects/clangbsd/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisContext.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Analysis/FlowSensitive/DataflowSolver.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def projects/clangbsd/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def projects/clangbsd/contrib/llvm/tools/clang/include/clang/Basic/CMakeLists.txt projects/clangbsd/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td projects/clangbsd/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td projects/clangbsd/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td projects/clangbsd/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td projects/clangbsd/contrib/llvm/tools/clang/include/clang/Basic/PartialDiagnostic.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Basic/SourceLocation.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Checker/BugReporter/BugReporter.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Checker/BugReporter/BugType.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Checker/BugReporter/PathDiagnostic.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Checker/DomainSpecific/CocoaConventions.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/BasicValueFactory.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/Checker.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/Environment.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/ExplodedGraph.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/GRBlockCounter.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/GRCoreEngine.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/GRExprEngine.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/GRSimpleAPICheck.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/GRState.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/GRSubEngine.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/GRTransferFuncs.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/MemRegion.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/Store.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/SymbolManager.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/CodeGen/CodeGenOptions.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td projects/clangbsd/contrib/llvm/tools/clang/include/clang/Driver/CMakeLists.txt projects/clangbsd/contrib/llvm/tools/clang/include/clang/Driver/Driver.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Driver/Options.td projects/clangbsd/contrib/llvm/tools/clang/include/clang/Frontend/HeaderSearchOptions.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnosticPrinter.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Frontend/TypeXML.def projects/clangbsd/contrib/llvm/tools/clang/include/clang/Lex/PPCallbacks.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorLexer.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Parse/Action.h projects/clangbsd/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/AST/CMakeLists.txt projects/clangbsd/contrib/llvm/tools/clang/lib/AST/CXXInheritance.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/AST/Decl.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/AST/Expr.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/AST/Type.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Analysis/AnalysisContext.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Basic/Diagnostic.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Basic/Targets.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/AdjustedReturnValueChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/ArrayBoundChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/AttrNonNullChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/BasicObjCFoundationChecks.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/BugReporter.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/BugReporterVisitors.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/CFRefCount.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/CMakeLists.txt projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/CallAndMessageChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/CastToStructChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/CheckSecuritySyntaxOnly.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/DereferenceChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/DivZeroChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/Environment.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/FixedAddressChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/GRBlockCounter.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/GRCoreEngine.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/GRExprEngine.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/GRState.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/MacOSXAPIChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/MallocChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/MemRegion.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/NSErrorChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/NoReturnFunctionChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/PathDiagnostic.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/PointerArithChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/PointerSubChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/RegionStore.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/ReturnPointerRangeChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/ReturnStackAddressChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/ReturnUndefChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/SymbolManager.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/UndefBranchChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/UndefCapturedBlockVarChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/UndefResultChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/UndefinedArraySubscriptChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/UndefinedAssignmentChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/UnixAPIChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/VLASizeChecker.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.h projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGCall.h projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGObjC.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGObjCGNU.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.h projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGRTTI.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGTemporaries.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGVTT.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGVtable.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGVtable.h projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.h projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/Mangle.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/Mangle.h projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/CMakeLists.txt projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/Driver.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/HostInfo.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Driver/Tools.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/DependencyFile.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/FixItRewriter.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/HTMLDiagnostics.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/PCHReader.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/PCHWriter.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/RewriteObjC.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticPrinter.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Headers/emmintrin.h projects/clangbsd/contrib/llvm/tools/clang/lib/Headers/mm_malloc.h projects/clangbsd/contrib/llvm/tools/clang/lib/Headers/mmintrin.h projects/clangbsd/contrib/llvm/tools/clang/lib/Headers/pmmintrin.h projects/clangbsd/contrib/llvm/tools/clang/lib/Headers/smmintrin.h projects/clangbsd/contrib/llvm/tools/clang/lib/Headers/tmmintrin.h projects/clangbsd/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h projects/clangbsd/contrib/llvm/tools/clang/lib/Lex/Lexer.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Lex/PPLexerChange.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Lex/TokenConcatenation.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Parse/AttributeList.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Parse/DeclSpec.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Parse/ParseInit.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Parse/Parser.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.h projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/Lookup.h projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/Sema.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/Sema.h projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaAccess.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaCXXCast.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaInit.h projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.h projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h projects/clangbsd/contrib/llvm/tools/clang/test/Analysis/PR3991.m projects/clangbsd/contrib/llvm/tools/clang/test/Analysis/inline.c projects/clangbsd/contrib/llvm/tools/clang/test/Analysis/misc-ps-region-store.m projects/clangbsd/contrib/llvm/tools/clang/test/Analysis/no-outofbounds.c projects/clangbsd/contrib/llvm/tools/clang/test/Analysis/null-deref-ps.c projects/clangbsd/contrib/llvm/tools/clang/test/Analysis/outofbound.c projects/clangbsd/contrib/llvm/tools/clang/test/Analysis/plist-output.m projects/clangbsd/contrib/llvm/tools/clang/test/Analysis/pr4209.m projects/clangbsd/contrib/llvm/tools/clang/test/Analysis/retain-release-region-store.m projects/clangbsd/contrib/llvm/tools/clang/test/Analysis/retain-release.m projects/clangbsd/contrib/llvm/tools/clang/test/Analysis/uninit-vals-ps-region.m projects/clangbsd/contrib/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.argdep/p4.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CXX/basic/basic.stc/basic.stc.dynamic/p2.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CXX/class.access/class.friend/p1.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CXX/class.access/p4.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p1.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.elab/p3.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CXX/temp/temp.arg/temp.arg.nontype/p1.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CXX/temp/temp.arg/temp.arg.nontype/p5.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CXX/temp/temp.res/temp.local/p1.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p20.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGen/atomic.c projects/clangbsd/contrib/llvm/tools/clang/test/CodeGen/enum.c projects/clangbsd/contrib/llvm/tools/clang/test/CodeGen/indirect-goto.c projects/clangbsd/contrib/llvm/tools/clang/test/CodeGen/mangle.c projects/clangbsd/contrib/llvm/tools/clang/test/CodeGen/palignr.c projects/clangbsd/contrib/llvm/tools/clang/test/CodeGen/regparm.c projects/clangbsd/contrib/llvm/tools/clang/test/CodeGen/switch.c projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/constructor-init.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/copy-constructor-synthesis.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/derived-to-base-conv.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/member-expressions.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/references.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/rtti-linkage.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/temporaries.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/virt.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/virtual-bases.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/vtable-layout-abi-examples.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/vtable-layout.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/vtable-linkage.cpp projects/clangbsd/contrib/llvm/tools/clang/test/FixIt/fixit.cpp projects/clangbsd/contrib/llvm/tools/clang/test/Index/Inputs/remap-complete-to.c projects/clangbsd/contrib/llvm/tools/clang/test/Index/cindex-on-invalid.m projects/clangbsd/contrib/llvm/tools/clang/test/Index/recover-bad-code-rdar_7487294.c projects/clangbsd/contrib/llvm/tools/clang/test/Index/remap-complete.c projects/clangbsd/contrib/llvm/tools/clang/test/PCH/changed-files.c projects/clangbsd/contrib/llvm/tools/clang/test/Parser/check-syntax-1.m projects/clangbsd/contrib/llvm/tools/clang/test/Parser/objc-messaging-neg-1.m projects/clangbsd/contrib/llvm/tools/clang/test/Parser/statements.c projects/clangbsd/contrib/llvm/tools/clang/test/Preprocessor/dependencies-and-pp.c projects/clangbsd/contrib/llvm/tools/clang/test/Preprocessor/macro_disable.c projects/clangbsd/contrib/llvm/tools/clang/test/Preprocessor/output_paste_avoid.c projects/clangbsd/contrib/llvm/tools/clang/test/Sema/attr-unused.c projects/clangbsd/contrib/llvm/tools/clang/test/Sema/format-strings.c projects/clangbsd/contrib/llvm/tools/clang/test/Sema/init.c projects/clangbsd/contrib/llvm/tools/clang/test/Sema/nested-redef.c projects/clangbsd/contrib/llvm/tools/clang/test/Sema/return.c projects/clangbsd/contrib/llvm/tools/clang/test/Sema/struct-packed-align.c projects/clangbsd/contrib/llvm/tools/clang/test/Sema/warn-shadow.c projects/clangbsd/contrib/llvm/tools/clang/test/SemaCXX/class-base-member-init.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaCXX/class-layout.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaCXX/conditional-expr.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaCXX/copy-initialization.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaCXX/destructor.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaCXX/exception-spec.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaCXX/invalid-member-expr.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaCXX/namespace-alias.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaCXX/namespace.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaCXX/nested-name-spec.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaCXX/qual-id-test.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaCXX/static-cast.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaCXX/warn-reorder-ctor-initialization.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/block-type-safety.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/category-1.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/compare-qualified-id.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/comptypes-7.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/conditional-expr.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/default-synthesize.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/gcc-cast-ext.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/ivar-in-implementations.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/ivar-sem-check-1.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/method-arg-decay.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/method-undef-category-warn-1.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/method-undef-extension-warn-1.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/method-undefined-warn-1.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/method-warn-unused-attribute.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/nsobject-attribute.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/property-expression-error.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/property-ivar-mismatch.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/property.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaObjC/undef-protocol-methods-1.m projects/clangbsd/contrib/llvm/tools/clang/test/SemaTemplate/dependent-base-classes.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaTemplate/friend-template.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaTemplate/instantiate-declref.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaTemplate/instantiate-expr-4.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaTemplate/instantiate-init.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaTemplate/instantiate-member-class.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaTemplate/instantiate-member-initializers.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaTemplate/instantiation-default-2.cpp projects/clangbsd/contrib/llvm/tools/clang/test/SemaTemplate/temp_arg_nontype.cpp projects/clangbsd/contrib/llvm/tools/clang/tools/CIndex/CIndex.cpp projects/clangbsd/contrib/llvm/tools/clang/tools/CIndex/CIndexDiagnostic.cpp projects/clangbsd/contrib/llvm/tools/clang/tools/CIndex/CIndexUSRs.cpp projects/clangbsd/contrib/llvm/tools/clang/tools/CIndex/CMakeLists.txt projects/clangbsd/contrib/llvm/tools/clang/tools/c-index-test/c-index-test.c projects/clangbsd/contrib/llvm/tools/clang/tools/driver/Makefile projects/clangbsd/contrib/llvm/tools/clang/tools/driver/cc1_main.cpp projects/clangbsd/contrib/llvm/tools/clang/tools/driver/driver.cpp projects/clangbsd/contrib/llvm/tools/clang/tools/scan-build/scan-build projects/clangbsd/contrib/llvm/tools/clang/utils/VtableTest/Makefile projects/clangbsd/contrib/llvm/tools/clang/utils/VtableTest/check-ztt projects/clangbsd/contrib/llvm/tools/clang/www/analyzer/latest_checker.html.incl projects/clangbsd/contrib/llvm/tools/clang/www/get_started.html projects/clangbsd/contrib/llvm/tools/edis/Makefile projects/clangbsd/contrib/llvm/tools/llc/llc.cpp projects/clangbsd/contrib/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp projects/clangbsd/contrib/llvm/tools/llvm-extract/llvm-extract.cpp projects/clangbsd/contrib/llvm/tools/llvm-ld/Optimize.cpp projects/clangbsd/contrib/llvm/tools/llvm-ld/llvm-ld.cpp projects/clangbsd/contrib/llvm/tools/llvm-link/llvm-link.cpp projects/clangbsd/contrib/llvm/tools/llvm-mc/llvm-mc.cpp projects/clangbsd/contrib/llvm/tools/llvmc/plugins/Base/Base.td.in projects/clangbsd/contrib/llvm/tools/lto/LTOCodeGenerator.cpp projects/clangbsd/contrib/llvm/tools/opt/opt.cpp projects/clangbsd/contrib/llvm/unittests/ADT/SmallVectorTest.cpp projects/clangbsd/contrib/llvm/utils/TableGen/CMakeLists.txt projects/clangbsd/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp projects/clangbsd/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.h projects/clangbsd/contrib/llvm/utils/TableGen/CodeGenInstruction.cpp projects/clangbsd/contrib/llvm/utils/TableGen/CodeGenInstruction.h projects/clangbsd/contrib/llvm/utils/TableGen/CodeGenTarget.cpp projects/clangbsd/contrib/llvm/utils/TableGen/DAGISelEmitter.cpp projects/clangbsd/contrib/llvm/utils/TableGen/DAGISelMatcher.cpp projects/clangbsd/contrib/llvm/utils/TableGen/DAGISelMatcher.h projects/clangbsd/contrib/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp projects/clangbsd/contrib/llvm/utils/TableGen/DAGISelMatcherGen.cpp projects/clangbsd/contrib/llvm/utils/TableGen/DAGISelMatcherOpt.cpp projects/clangbsd/contrib/llvm/utils/TableGen/DisassemblerEmitter.cpp projects/clangbsd/contrib/llvm/utils/TableGen/FastISelEmitter.cpp projects/clangbsd/contrib/llvm/utils/TableGen/InstrInfoEmitter.cpp projects/clangbsd/contrib/llvm/utils/TableGen/IntrinsicEmitter.cpp projects/clangbsd/contrib/llvm/utils/TableGen/Record.cpp projects/clangbsd/contrib/llvm/utils/TableGen/Record.h projects/clangbsd/contrib/llvm/utils/TableGen/TableGen.cpp projects/clangbsd/contrib/llvm/utils/buildit/build_llvm projects/clangbsd/contrib/llvm/utils/lit/lit/TestFormats.py projects/clangbsd/contrib/llvm/utils/lit/lit/TestRunner.py projects/clangbsd/contrib/llvm/utils/lit/lit/lit.py projects/clangbsd/usr.bin/clang/bin/tblgen/Makefile projects/clangbsd/usr.bin/clang/lib/libclangchecker/Makefile projects/clangbsd/usr.bin/clang/lib/libllvmcodegen/Makefile projects/clangbsd/usr.bin/clang/lib/libllvmcore/Makefile projects/clangbsd/usr.bin/clang/lib/libllvmx86codegen/Makefile Directory Properties: projects/clangbsd/contrib/llvm/ (props changed) projects/clangbsd/contrib/llvm/tools/clang/ (props changed) Modified: projects/clangbsd/contrib/llvm/Makefile ============================================================================== --- projects/clangbsd/contrib/llvm/Makefile Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/Makefile Sun Apr 4 08:47:34 2010 (r206157) @@ -214,7 +214,7 @@ update: $(SVN) $(SVN-UPDATE-OPTIONS) update $(LLVM_SRC_ROOT) @ $(SVN) status $(LLVM_SRC_ROOT) | $(SUB-SVN-DIRS) | xargs $(SVN) $(SVN-UPDATE-OPTIONS) update -happiness: update all check unittests +happiness: update all check-all .PHONY: srpm rpm update happiness Modified: projects/clangbsd/contrib/llvm/Makefile.rules ============================================================================== --- projects/clangbsd/contrib/llvm/Makefile.rules Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/Makefile.rules Sun Apr 4 08:47:34 2010 (r206157) @@ -1612,6 +1612,11 @@ $(ObjDir)/%GenIntrinsics.inc.tmp : %.td $(Echo) "Building $(&5 echo "$as_me: WARNING: Unknown project (${i}) won't be configured automatically" >&2;} @@ -11151,7 +11156,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <The portion of the instruction definition in bold indicates the pattern used to match the instruction. The DAG operators (like fmul/fadd) are defined in - the lib/Target/TargetSelectionDAG.td file. "F4RC" is the - register class of the input and result values.

+ the include/llvm/Target/TargetSelectionDAG.td file. " + F4RC" is the register class of the input and result values.

The TableGen DAG instruction selector generator reads the instruction patterns in the .td file and automatically builds parts of the @@ -2162,7 +2162,7 @@ MOVSX32rm16 -> movsx, 32-bit register Chris Lattner
The LLVM Compiler Infrastructure
- Last modified: $Date: 2010-03-11 01:22:57 +0100 (Thu, 11 Mar 2010) $ + Last modified: $Date: 2010-03-25 01:03:04 +0100 (Thu, 25 Mar 2010) $ Modified: projects/clangbsd/contrib/llvm/docs/ProgrammersManual.html ============================================================================== --- projects/clangbsd/contrib/llvm/docs/ProgrammersManual.html Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/docs/ProgrammersManual.html Sun Apr 4 08:47:34 2010 (r206157) @@ -1211,14 +1211,14 @@ and erasing, but does not support iterat

-

SmallPtrSet has all the advantages of SmallSet (and a SmallSet of pointers is -transparently implemented with a SmallPtrSet), but also supports iterators. If +

SmallPtrSet has all the advantages of SmallSet (and a SmallSet of pointers is +transparently implemented with a SmallPtrSet), but also supports iterators. If more than 'N' insertions are performed, a single quadratically probed hash table is allocated and grows as needed, providing extremely efficient access (constant time insertion/deleting/queries with low constant factors) and is very stingy with malloc traffic.

-

Note that, unlike std::set, the iterators of SmallPtrSet are invalidated +

Note that, unlike std::set, the iterators of SmallPtrSet are invalidated whenever an insertion occurs. Also, the values visited by the iterators are not visited in sorted order.

@@ -1843,6 +1843,21 @@ void printNextInstruction(Instruction* i
+

Unfortunately, these implicit conversions come at a cost; they prevent +these iterators from conforming to standard iterator conventions, and thus +from being usable with standard algorithms and containers. For example, they +prevent the following code, where B is a BasicBlock, +from compiling:

+ +
+
+  llvm::SmallVector<llvm::Instruction *, 16>(B->begin(), B->end());
+
+
+ +

Because of this, these implicit conversions may be removed some day, +and operator* changed to return a pointer instead of a reference.

+ @@ -1962,7 +1977,11 @@ for (Value::use_iterator i = F->use_b -

Alternately, it's common to have an instance of the Note that dereferencing a Value::use_iterator is not a very cheap +operation. Instead of performing *i above several times, consider +doing it only once in the loop body and reusing its result.

+ +

Alternatively, it's common to have an instance of the User Class and need to know what Values are used by it. The list of all Values used by a User is known as a use-def chain. Instances of class @@ -1981,10 +2000,13 @@ for (User::op_iterator i = pi->op_beg - +

Declaring objects as const is an important tool of enforcing +mutation free algorithms (such as analyses, etc.). For this purpose above +iterators come in constant flavors as Value::const_use_iterator +and Value::const_op_iterator. They automatically arise when +calling use/op_begin() on const Value*s or +const User*s respectively. Upon dereferencing, they return +const Use*s. Otherwise the above patterns remain unchanged.

@@ -3058,7 +3080,7 @@ the lib/VMCore directory.

FunctionType
Subclass of DerivedTypes for function types.
    -
  • bool isVarArg() const: Returns true if its a vararg +
  • bool isVarArg() const: Returns true if it's a vararg function
  • const Type * getReturnType() const: Returns the return type of the function.
  • @@ -3276,7 +3298,7 @@ simplifies the representation and makes
    • Value::use_iterator - Typedef for iterator over the use-list
      - Value::use_const_iterator - Typedef for const_iterator over + Value::const_use_iterator - Typedef for const_iterator over the use-list
      unsigned use_size() - Returns the number of users of the value.
      @@ -3921,7 +3943,7 @@ arguments. An argument has a pointer to Dinakar Dhurjati and Chris Lattner
      The LLVM Compiler Infrastructure
      - Last modified: $Date: 2010-02-26 00:51:27 +0100 (Fri, 26 Feb 2010) $ + Last modified: $Date: 2010-04-02 02:08:26 +0200 (Fri, 02 Apr 2010) $ Modified: projects/clangbsd/contrib/llvm/docs/ReleaseNotes.html ============================================================================== --- projects/clangbsd/contrib/llvm/docs/ReleaseNotes.html Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/docs/ReleaseNotes.html Sun Apr 4 08:47:34 2010 (r206157) @@ -127,8 +127,21 @@ development. Here we include updates on

      In the LLVM 2.7 time-frame, the Clang team has made many improvements:

        -
      • ...
      • -include a link to cxx_compatibility.html +
      • FIXME: C++! Include a link to cxx_compatibility.html
      • + +
      • FIXME: Static Analyzer improvements?
      • + +
      • CIndex API and Python bindings: Clang now includes a C API as part of the +CIndex library. Although we make make some changes to the API in the future, it +is intended to be stable and has been designed for use by external projects. See +the Clang +doxygen CIndex +documentation for more details. The CIndex API also includings an preliminary +set of Python bindings.
      • + +
      • ARM Support: Clang now has ABI support for both the Darwin and Linux ARM +ABIs. Coupled with many improvements to the LLVM ARM backend, Clang is now +suitable for use as a a beta quality ARM compiler.
      @@ -162,13 +175,23 @@ implementation of the CLI) using LLVM fo compilation.

      -VMKit version ?? builds with LLVM 2.7 and you can find it on its -web page. The release includes -bug fixes, cleanup and new features. The major changes are:

      +With the release of LLVM 2.7, VMKit has shifted to a great framework for writing +virtual machines. VMKit now offers precise and efficient garbage collection with +multi-threading support, thanks to the MMTk memory management toolkit, as well +as just in time and ahead of time compilation with LLVM. The major changes in +VMKit 0.27 are:

        -
      • ...
      • +
      • Garbage collection: VMKit now uses the MMTk toolkit for garbage collectors. + The first collector to be ported is the MarkSweep collector, which is precise, + and drastically improves the performance of VMKit.
      • +
      • Line number information in the JVM: by using the debug metadata of LLVM, the + JVM now supports precise line number information, useful when printing a stack + trace.
      • +
      • Interface calls in the JVM: we implemented a variant of the Interface Method + Table technique for interface calls in the JVM. +
      @@ -198,15 +221,35 @@ License, a "BSD-style" license.

      -The goal of DragonEgg is to make -gcc-4.5 act like llvm-gcc without requiring any gcc modifications whatsoever. -DragonEgg is a shared library (dragonegg.so) -that is loaded by gcc at runtime. It ... +DragonEgg is a port of llvm-gcc to +gcc-4.5. Unlike llvm-gcc, which makes many intrusive changes to the underlying +gcc-4.2 code, dragonegg in theory does not require any gcc-4.5 modifications +whatsoever (currently one small patch is needed). This is thanks to the new +gcc plugin architecture, which +makes it possible to modify the behaviour of gcc at runtime by loading a plugin, +which is nothing more than a dynamic library which conforms to the gcc plugin +interface. DragonEgg is a gcc plugin that causes the LLVM optimizers to be run +instead of the gcc optimizers, and the LLVM code generators instead of the gcc +code generators, just like llvm-gcc. To use it, you add +"-fplugin=path/dragonegg.so" to the gcc-4.5 command line, and gcc-4.5 magically +becomes llvm-gcc-4.5! +

      + +

      +DragonEgg is still a work in progress. Currently C works very well, while C++, +Ada and Fortran work fairly well. All other languages either don't work at all, +or only work poorly. For the moment only the x86-32 and x86-64 targets are +supported, and only on linux. +

      + +

      +DragonEgg has not yet been released. Once gcc-4.5 has been released, dragonegg +will probably be released as part of the following LLVM release.

      @@ -391,6 +434,27 @@ code.--> + + + +
      +

      +TCE is a toolset for designing +application-specific processors (ASP) based on the Transport triggered +architecture (TTA). The toolset provides a complete co-design flow from C/C++ +programs down to synthesizable VHDL and parallel program binaries. Processor +customization points include the register files, function units, supported +operations, and the interconnection network.

      + +

      TCE uses llvm-gcc/Clang and LLVM for C/C++ language support, target +independent optimizations and also for parts of code generation. It generates +new LLVM-based code generators "on the fly" for the designed TTA processors and +loads them in to the compiler backend as runtime libraries to avoid per-target +recompilation of larger parts of the compiler chain.

      + +
      @@ -439,7 +503,7 @@ New llvm/Support/Regex.h API. FileCheck Many subtle pointer invalidation bugs in Callgraph have been fixed and it now uses asserting value handles. MC Disassembler (with blog post), MCInstPrinter. Many X86 backend and AsmPrinter simplifications Various tools like llc and opt now read either .ll or .bc files as input. -Malloc and free instructions got removed. +Malloc and free instructions got removed, along with LowerAllocations pass. compiler-rt support for ARM. completely llvm-gcc NEON support. Can transcode from GAS to intel syntax with "llvm-mc foo.s -output-asm-variant=1" @@ -456,8 +520,12 @@ x86 sibcall optimization New LSR with full strength reduction mode The most awesome sext / zext optimization pass. ? +The ARM backend now has good support for ARMv4 backend (tested on StrongARM + hardware), previously only supported ARMv4T and newer. + +Defaults to RTTI off, packagers should build with make REQUIRE_RTTI=1. CondProp pass removed (functionality merged into jump threading). AndersAA got removed (from 2.7 or mainline?) PredSimplify, LoopVR, GVNPRE got removed. @@ -978,20 +1046,6 @@ ignored.
    - - - -
    - -

    The Llvm.Linkage module is broken, and has incorrect values. Only -Llvm.Linkage.External, Llvm.Linkage.Available_externally, and -Llvm.Linkage.Link_once will be correct. If you need any of the other linkage -modes, you'll have to write an external C library in order to expose the -functionality. This has been fixed in the trunk.

    -
    -
    Additional Information @@ -1024,7 +1078,7 @@ lists.

    src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"> LLVM Compiler Infrastructure
    - Last modified: $Date: 2010-03-19 04:18:05 +0100 (Fri, 19 Mar 2010) $ + Last modified: $Date: 2010-04-02 11:23:15 +0200 (Fri, 02 Apr 2010) $ Modified: projects/clangbsd/contrib/llvm/docs/SourceLevelDebugging.html ============================================================================== --- projects/clangbsd/contrib/llvm/docs/SourceLevelDebugging.html Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/docs/SourceLevelDebugging.html Sun Apr 4 08:47:34 2010 (r206157) @@ -289,26 +289,25 @@ height="369"> 0x1000.)

    The fields of debug descriptors used internally by LLVM - are restricted to only the simple data types int, uint, - bool, float, double, mdstring and - mdnode.

    + are restricted to only the simple data types i32, i1, + float, double, mdstring and mdnode.

     !1 = metadata !{
    -  uint,   ;; A tag
    +  i32,   ;; A tag
       ...
     }
     

    The first field of a descriptor is always an - uint containing a tag value identifying the content of the + i32 containing a tag value identifying the content of the descriptor. The remaining fields are specific to the descriptor. The values of tags are loosely bound to the tag values of DWARF information entries. However, that does not restrict the use of the information supplied to DWARF targets. To facilitate versioning of debug information, the tag is augmented - with the current debug version (LLVMDebugVersion = 8 << 16 or 0x80000 or + with the current debug version (LLVMDebugVersion = 8 << 16 or 0x80000 or 524288.)

    The details of the various descriptors follow.

    @@ -829,8 +828,8 @@ DW_TAG_return_variable = 258 rules.

    In order to handle this, the LLVM debug format uses the metadata attached to - llvm instructions to encode line nuber and scoping information. Consider the - following C fragment, for example:

    + llvm instructions to encode line number and scoping information. Consider + the following C fragment, for example:

    @@ -1069,6 +1068,18 @@ int main(int argc, char *argv[]) {
     
    +

    llvm::Instruction provides easy access to metadata attached with an +instruction. One can extract line number information encoded in LLVM IR +using Instruction::getMetadata() and +DILocation::getLineNumber(). +

    + if (MDNode *N = I->getMetadata("dbg")) {  // Here I is an LLVM instruction
    +   DILocation Loc(N);                      // DILocation is in DebugInfo.h
    +   unsigned Line = Loc.getLineNumber();
    +   StringRef File = Loc.getFilename();
    +   StringRef Dir = Loc.getDirectory();
    + }
    +
    @@ -1762,7 +1773,7 @@ enum Trees { Chris Lattner
    LLVM Compiler Infrastructure
    - Last modified: $Date: 2010-03-17 16:01:50 +0100 (Wed, 17 Mar 2010) $ + Last modified: $Date: 2010-03-31 09:50:17 +0200 (Wed, 31 Mar 2010) $ Modified: projects/clangbsd/contrib/llvm/docs/TableGenFundamentals.html ============================================================================== --- projects/clangbsd/contrib/llvm/docs/TableGenFundamentals.html Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/docs/TableGenFundamentals.html Sun Apr 4 08:47:34 2010 (r206157) @@ -768,9 +768,6 @@ patterns:

    an implicitly defined physical register. This tells the dag instruction selection emitter the input pattern's extra definitions matches implicit physical register definitions.
    -
    (parallel (a), (b))
    -
    a list of dags specifying parallel operations which map to the same - instruction.
    @@ -797,7 +794,7 @@ This should highlight the APIs in Ta Chris Lattner
    LLVM Compiler Infrastructure
    - Last modified: $Date: 2010-02-28 00:47:46 +0100 (Sun, 28 Feb 2010) $ + Last modified: $Date: 2010-03-27 03:53:27 +0100 (Sat, 27 Mar 2010) $ Modified: projects/clangbsd/contrib/llvm/docs/tutorial/OCamlLangImpl6.html ============================================================================== --- projects/clangbsd/contrib/llvm/docs/tutorial/OCamlLangImpl6.html Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/docs/tutorial/OCamlLangImpl6.html Sun Apr 4 08:47:34 2010 (r206157) @@ -821,7 +821,7 @@ ocaml_lib ~extern:true "llvm_executionen ocaml_lib ~extern:true "llvm_target";; ocaml_lib ~extern:true "llvm_scalar_opts";; -flag ["link"; "ocaml"; "g++"] (S[A"-cc"; A"g++"]);; +flag ["link"; "ocaml"; "g++"] (S[A"-cc"; A"g++"; A"-cclib"; A"-rdynamic"]);; dep ["link"; "ocaml"; "use_bindings"] ["bindings.o"];;
@@ -1568,7 +1568,7 @@ SSA construction Chris Lattner
Erick Tryzelaar
The LLVM Compiler Infrastructure
- Last modified: $Date: 2010-03-08 20:32:18 +0100 (Mon, 08 Mar 2010) $ + Last modified: $Date: 2010-03-22 00:15:13 +0100 (Mon, 22 Mar 2010) $ Modified: projects/clangbsd/contrib/llvm/docs/tutorial/OCamlLangImpl7.html ============================================================================== --- projects/clangbsd/contrib/llvm/docs/tutorial/OCamlLangImpl7.html Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/docs/tutorial/OCamlLangImpl7.html Sun Apr 4 08:47:34 2010 (r206157) @@ -999,7 +999,7 @@ ocaml_lib ~extern:true "llvm_executionen ocaml_lib ~extern:true "llvm_target";; ocaml_lib ~extern:true "llvm_scalar_opts";; -flag ["link"; "ocaml"; "g++"] (S[A"-cc"; A"g++"]);; +flag ["link"; "ocaml"; "g++"] (S[A"-cc"; A"g++"; A"-cclib"; A"-rdynamic"]);; dep ["link"; "ocaml"; "use_bindings"] ["bindings.o"];; @@ -1901,7 +1901,7 @@ extern double printd(double X) { Chris Lattner
The LLVM Compiler Infrastructure
Erick Tryzelaar
- Last modified: $Date: 2010-03-08 20:32:18 +0100 (Mon, 08 Mar 2010) $ + Last modified: $Date: 2010-03-22 00:15:13 +0100 (Mon, 22 Mar 2010) $ Modified: projects/clangbsd/contrib/llvm/examples/OCaml-Kaleidoscope/Chapter6/myocamlbuild.ml ============================================================================== --- projects/clangbsd/contrib/llvm/examples/OCaml-Kaleidoscope/Chapter6/myocamlbuild.ml Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/examples/OCaml-Kaleidoscope/Chapter6/myocamlbuild.ml Sun Apr 4 08:47:34 2010 (r206157) @@ -6,5 +6,5 @@ ocaml_lib ~extern:true "llvm_executionen ocaml_lib ~extern:true "llvm_target";; ocaml_lib ~extern:true "llvm_scalar_opts";; -flag ["link"; "ocaml"; "g++"] (S[A"-cc"; A"g++"]);; +flag ["link"; "ocaml"; "g++"] (S[A"-cc"; A"g++"; A"-cclib"; A"-rdynamic"]);; dep ["link"; "ocaml"; "use_bindings"] ["bindings.o"];; Modified: projects/clangbsd/contrib/llvm/examples/OCaml-Kaleidoscope/Chapter7/myocamlbuild.ml ============================================================================== --- projects/clangbsd/contrib/llvm/examples/OCaml-Kaleidoscope/Chapter7/myocamlbuild.ml Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/examples/OCaml-Kaleidoscope/Chapter7/myocamlbuild.ml Sun Apr 4 08:47:34 2010 (r206157) @@ -6,5 +6,5 @@ ocaml_lib ~extern:true "llvm_executionen ocaml_lib ~extern:true "llvm_target";; ocaml_lib ~extern:true "llvm_scalar_opts";; -flag ["link"; "ocaml"; "g++"] (S[A"-cc"; A"g++"]);; +flag ["link"; "ocaml"; "g++"] (S[A"-cc"; A"g++"; A"-cclib"; A"-rdynamic"]);; dep ["link"; "ocaml"; "use_bindings"] ["bindings.o"];; Modified: projects/clangbsd/contrib/llvm/include/llvm/ADT/PointerUnion.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/ADT/PointerUnion.h Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/include/llvm/ADT/PointerUnion.h Sun Apr 4 08:47:34 2010 (r206157) @@ -124,7 +124,7 @@ namespace llvm { } void *getOpaqueValue() const { return Val.getOpaqueValue(); } - static PointerUnion getFromOpaqueValue(void *VP) { + static inline PointerUnion getFromOpaqueValue(void *VP) { PointerUnion V; V.Val = ValTy::getFromOpaqueValue(VP); return V; @@ -227,7 +227,7 @@ namespace llvm { } void *getOpaqueValue() const { return Val.getOpaqueValue(); } - static PointerUnion3 getFromOpaqueValue(void *VP) { + static inline PointerUnion3 getFromOpaqueValue(void *VP) { PointerUnion3 V; V.Val = ValTy::getFromOpaqueValue(VP); return V; @@ -338,7 +338,7 @@ namespace llvm { } void *getOpaqueValue() const { return Val.getOpaqueValue(); } - static PointerUnion4 getFromOpaqueValue(void *VP) { + static inline PointerUnion4 getFromOpaqueValue(void *VP) { PointerUnion4 V; V.Val = ValTy::getFromOpaqueValue(VP); return V; Modified: projects/clangbsd/contrib/llvm/include/llvm/ADT/SmallVector.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/ADT/SmallVector.h Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/include/llvm/ADT/SmallVector.h Sun Apr 4 08:47:34 2010 (r206157) @@ -239,11 +239,20 @@ public: /// starting with "Dest", constructing elements into it as needed. template static void uninitialized_copy(It1 I, It1 E, It2 Dest) { - // Use memcpy for PODs: std::uninitialized_copy optimizes to memmove, memcpy - // is better. - memcpy(&*Dest, &*I, (E-I)*sizeof(T)); + // Arbitrary iterator types; just use the basic implementation. + std::uninitialized_copy(I, E, Dest); } - + + /// uninitialized_copy - Copy the range [I, E) onto the uninitialized memory + /// starting with "Dest", constructing elements into it as needed. + template + static void uninitialized_copy(T1 *I, T1 *E, T2 *Dest) { + // Use memcpy for PODs iterated by pointers (which includes SmallVector + // iterators): std::uninitialized_copy optimizes to memmove, but we can + // use memcpy here. + memcpy(Dest, I, (E-I)*sizeof(T)); + } + /// grow - double the size of the allocated memory, guaranteeing space for at /// least one more element or MinSize if specified. void grow(size_t MinSize = 0) { @@ -501,10 +510,13 @@ public: this->uninitialized_copy(I, OldEnd, this->end()-NumOverwritten); // Replace the overwritten part. - std::copy(From, From+NumOverwritten, I); + for (; NumOverwritten > 0; --NumOverwritten) { + *I = *From; + ++I; ++From; + } // Insert the non-overwritten middle part. - this->uninitialized_copy(From+NumOverwritten, To, OldEnd); + this->uninitialized_copy(From, To, OldEnd); return I; } Modified: projects/clangbsd/contrib/llvm/include/llvm/ADT/Statistic.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/ADT/Statistic.h Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/include/llvm/ADT/Statistic.h Sun Apr 4 08:47:34 2010 (r206157) @@ -29,6 +29,7 @@ #include "llvm/System/Atomic.h" namespace llvm { +class raw_ostream; class Statistic { public: @@ -113,6 +114,15 @@ protected: #define STATISTIC(VARNAME, DESC) \ static llvm::Statistic VARNAME = { DEBUG_TYPE, DESC, 0, 0 } +/// \brief Enable the collection and printing of statistics. +void EnableStatistics(); + +/// \brief Print statistics to the file returned by CreateInfoOutputFile(). +void PrintStatistics(); + +/// \brief Print statistics to the given output stream. +void PrintStatistics(raw_ostream &OS); + } // End llvm namespace #endif Modified: projects/clangbsd/contrib/llvm/include/llvm/ADT/StringMap.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/ADT/StringMap.h Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/include/llvm/ADT/StringMap.h Sun Apr 4 08:47:34 2010 (r206157) @@ -216,6 +216,14 @@ public: static const StringMapEntry &GetStringMapEntryFromValue(const ValueTy &V) { return GetStringMapEntryFromValue(const_cast(V)); } + + /// GetStringMapEntryFromKeyData - Given key data that is known to be embedded + /// into a StringMapEntry, return the StringMapEntry itself. + static StringMapEntry &GetStringMapEntryFromKeyData(const char *KeyData) { + char *Ptr = const_cast(KeyData) - sizeof(StringMapEntry); + return *reinterpret_cast(Ptr); + } + /// Destroy - Destroy this StringMapEntry, releasing memory back to the /// specified allocator. Modified: projects/clangbsd/contrib/llvm/include/llvm/Analysis/DebugInfo.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/Analysis/DebugInfo.h Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/include/llvm/Analysis/DebugInfo.h Sun Apr 4 08:47:34 2010 (r206157) @@ -31,8 +31,6 @@ namespace llvm { class Type; class Value; class DbgDeclareInst; - class DebugLoc; - struct DebugLocTracker; class Instruction; class MDNode; class LLVMContext; @@ -395,8 +393,21 @@ namespace llvm { } unsigned isArtificial() const { return getUnsignedField(14); } - StringRef getFilename() const { return getCompileUnit().getFilename();} - StringRef getDirectory() const { return getCompileUnit().getDirectory();} + StringRef getFilename() const { + if (getVersion() == llvm::LLVMDebugVersion7) + return getCompileUnit().getFilename(); + + DIFile F = getFieldAs(6); + return F.getFilename(); + } + + StringRef getDirectory() const { + if (getVersion() == llvm::LLVMDebugVersion7) + return getCompileUnit().getFilename(); + + DIFile F = getFieldAs(6); + return F.getDirectory(); + } /// Verify - Verify that a subprogram descriptor is well formed. bool Verify() const; @@ -697,11 +708,6 @@ namespace llvm { std::string &Type, unsigned &LineNo, std::string &File, std::string &Dir); - /// ExtractDebugLocation - Extract debug location information - /// from DILocation. - DebugLoc ExtractDebugLocation(DILocation &Loc, - DebugLocTracker &DebugLocInfo); - /// getDISubprogram - Find subprogram that is enclosing this scope. DISubprogram getDISubprogram(MDNode *Scope); Modified: projects/clangbsd/contrib/llvm/include/llvm/Analysis/Dominators.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/Analysis/Dominators.h Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/include/llvm/Analysis/Dominators.h Sun Apr 4 08:47:34 2010 (r206157) @@ -116,12 +116,12 @@ public: return true; SmallPtrSet OtherChildren; - for(iterator I = Other->begin(), E = Other->end(); I != E; ++I) { + for (iterator I = Other->begin(), E = Other->end(); I != E; ++I) { NodeT *Nd = (*I)->getBlock(); OtherChildren.insert(Nd); } - for(iterator I = begin(), E = end(); I != E; ++I) { + for (iterator I = begin(), E = end(); I != E; ++I) { NodeT *N = (*I)->getBlock(); if (OtherChildren.count(N) == 0) return true; @@ -240,8 +240,9 @@ protected: template void Split(DominatorTreeBase& DT, typename GraphT::NodeType* NewBB) { - assert(std::distance(GraphT::child_begin(NewBB), GraphT::child_end(NewBB)) == 1 - && "NewBB should have a single successor!"); + assert(std::distance(GraphT::child_begin(NewBB), + GraphT::child_end(NewBB)) == 1 && + "NewBB should have a single successor!"); typename GraphT::NodeType* NewBBSucc = *GraphT::child_begin(NewBB); std::vector PredBlocks; @@ -374,8 +375,8 @@ public: /// isReachableFromEntry - Return true if A is dominated by the entry /// block of the function containing it. bool isReachableFromEntry(NodeT* A) { - assert (!this->isPostDominator() - && "This is not implemented for post dominators"); + assert(!this->isPostDominator() && + "This is not implemented for post dominators"); return dominates(&A->getParent()->front(), A); } @@ -393,8 +394,9 @@ public: // Compare the result of the tree walk and the dfs numbers, if expensive // checks are enabled. #ifdef XDEBUG - assert(!DFSInfoValid - || (dominatedBySlowTreeWalk(A, B) == B->DominatedBy(A))); + assert((!DFSInfoValid || + (dominatedBySlowTreeWalk(A, B) == B->DominatedBy(A))) && + "Tree walk disagrees with dfs numbers!"); #endif if (DFSInfoValid) @@ -430,16 +432,16 @@ public: /// findNearestCommonDominator - Find nearest common dominator basic block /// for basic block A and B. If there is no such block then return NULL. NodeT *findNearestCommonDominator(NodeT *A, NodeT *B) { + assert(A->getParent() == B->getParent() && + "Two blocks are not in same function"); - assert (!this->isPostDominator() - && "This is not implemented for post dominators"); - assert (A->getParent() == B->getParent() - && "Two blocks are not in same function"); - - // If either A or B is a entry block then it is nearest common dominator. - NodeT &Entry = A->getParent()->front(); - if (A == &Entry || B == &Entry) - return &Entry; + // If either A or B is a entry block then it is nearest common dominator + // (for forward-dominators). + if (!this->isPostDominator()) { + NodeT &Entry = A->getParent()->front(); + if (A == &Entry || B == &Entry) + return &Entry; + } // If B dominates A then B is nearest common dominator. if (dominates(B, A)) @@ -463,7 +465,7 @@ public: // Walk NodeB immediate dominators chain and find common dominator node. DomTreeNodeBase *IDomB = NodeB->getIDom(); - while(IDomB) { + while (IDomB) { if (NodeADoms.count(IDomB) != 0) return IDomB->getBlock(); @@ -508,8 +510,8 @@ public: /// children list. Deletes dominator node associated with basic block BB. void eraseNode(NodeT *BB) { DomTreeNodeBase *Node = getNode(BB); - assert (Node && "Removing node that isn't in dominator tree."); - assert (Node->getChildren().empty() && "Node is not a leaf node."); + assert(Node && "Removing node that isn't in dominator tree."); + assert(Node->getChildren().empty() && "Node is not a leaf node."); // Remove node from immediate dominator's children list. DomTreeNodeBase *IDom = Node->getIDom(); @@ -952,7 +954,7 @@ public: return true; } - if(!tmpSet.empty()) + if (!tmpSet.empty()) // There are nodes that are in DS2 but not in DS1. return true; Modified: projects/clangbsd/contrib/llvm/include/llvm/Analysis/LoopPass.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/Analysis/LoopPass.h Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/include/llvm/Analysis/LoopPass.h Sun Apr 4 08:47:34 2010 (r206157) @@ -31,6 +31,10 @@ public: explicit LoopPass(intptr_t pid) : Pass(PT_Loop, pid) {} explicit LoopPass(void *pid) : Pass(PT_Loop, pid) {} + /// getPrinterPass - Get a pass to print the function corresponding + /// to a Loop. + Pass *createPrinterPass(raw_ostream &O, const std::string &Banner) const; + // runOnLoop - This method should be implemented by the subclass to perform // whatever action is necessary for the specified Loop. virtual bool runOnLoop(Loop *L, LPPassManager &LPM) = 0; Modified: projects/clangbsd/contrib/llvm/include/llvm/Assembly/PrintModulePass.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/Assembly/PrintModulePass.h Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/include/llvm/Assembly/PrintModulePass.h Sun Apr 4 08:47:34 2010 (r206157) @@ -27,7 +27,9 @@ namespace llvm { /// createPrintModulePass - Create and return a pass that writes the /// module to the specified raw_ostream. - ModulePass *createPrintModulePass(raw_ostream *OS, bool DeleteStream=false); + ModulePass *createPrintModulePass(raw_ostream *OS, + bool DeleteStream=false, + const std::string &Banner = ""); /// createPrintFunctionPass - Create and return a pass that prints /// functions to the specified raw_ostream as they are processed. Modified: projects/clangbsd/contrib/llvm/include/llvm/BasicBlock.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/BasicBlock.h Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/include/llvm/BasicBlock.h Sun Apr 4 08:47:34 2010 (r206157) @@ -131,6 +131,12 @@ public: const Instruction* getFirstNonPHI() const { return const_cast(this)->getFirstNonPHI(); } + + // Same as above, but also skip debug intrinsics. + Instruction* getFirstNonPHIOrDbg(); + const Instruction* getFirstNonPHIOrDbg() const { + return const_cast(this)->getFirstNonPHIOrDbg(); + } /// removeFromParent - This method unlinks 'this' from the containing /// function, but does not delete it. Modified: projects/clangbsd/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h Sun Apr 4 08:47:34 2010 (r206157) @@ -240,7 +240,10 @@ namespace bitc { // new select on i1 or [N x i1] FUNC_CODE_INST_VSELECT = 29, // VSELECT: [ty,opval,opval,predty,pred] FUNC_CODE_INST_INBOUNDS_GEP= 30, // INBOUNDS_GEP: [n x operands] - FUNC_CODE_INST_INDIRECTBR = 31 // INDIRECTBR: [opty, op0, op1, ...] + FUNC_CODE_INST_INDIRECTBR = 31, // INDIRECTBR: [opty, op0, op1, ...] + + FUNC_CODE_DEBUG_LOC = 32, // DEBUG_LOC: [Line,Col,ScopeVal, IAVal] + FUNC_CODE_DEBUG_LOC_AGAIN = 33 // DEBUG_LOC_AGAIN }; } // End bitc namespace } // End llvm namespace Modified: projects/clangbsd/contrib/llvm/include/llvm/CallGraphSCCPass.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/CallGraphSCCPass.h Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/include/llvm/CallGraphSCCPass.h Sun Apr 4 08:47:34 2010 (r206157) @@ -35,6 +35,10 @@ struct CallGraphSCCPass : public Pass { explicit CallGraphSCCPass(intptr_t pid) : Pass(PT_CallGraphSCC, pid) {} explicit CallGraphSCCPass(void *pid) : Pass(PT_CallGraphSCC, pid) {} + /// createPrinterPass - Get a pass that prints the Module + /// corresponding to a CallGraph. + Pass *createPrinterPass(raw_ostream &O, const std::string &Banner) const; + /// doInitialization - This method is called before the SCC's of the program /// has been processed, allowing the pass to do initialization as necessary. virtual bool doInitialization(CallGraph &CG) { Modified: projects/clangbsd/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h Sun Apr 4 08:47:34 2010 (r206157) @@ -19,6 +19,7 @@ #include "llvm/CodeGen/MachineFunctionPass.h" #include "llvm/Support/DebugLoc.h" #include "llvm/Target/TargetMachine.h" +#include "llvm/ADT/DenseMap.h" namespace llvm { class BlockAddress; @@ -47,7 +48,6 @@ namespace llvm { class MCSection; class MCStreamer; class MCSymbol; - class MDNode; class DwarfWriter; class Mangler; class MCAsmInfo; @@ -138,9 +138,6 @@ namespace llvm { mutable unsigned Counter; mutable unsigned SetCounter; - // Private state for processDebugLoc() - mutable const MDNode *PrevDLT; - protected: explicit AsmPrinter(formatted_raw_ostream &o, TargetMachine &TM, MCStreamer &Streamer); Modified: projects/clangbsd/contrib/llvm/include/llvm/CodeGen/DwarfWriter.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/CodeGen/DwarfWriter.h Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/include/llvm/CodeGen/DwarfWriter.h Sun Apr 4 08:47:34 2010 (r206157) @@ -83,19 +83,11 @@ public: /// void EndFunction(const MachineFunction *MF); - /// RecordSourceLine - Register a source line with debug info. Returns the - /// unique label that was emitted and which provides correspondence to - /// the source line list. - MCSymbol *RecordSourceLine(unsigned Line, unsigned Col, MDNode *Scope); - - /// getRecordSourceLineCount - Count source lines. - unsigned getRecordSourceLineCount(); - /// ShouldEmitDwarfDebug - Returns true if Dwarf debugging declarations should /// be emitted. bool ShouldEmitDwarfDebug() const; - void BeginScope(const MachineInstr *MI, MCSymbol *Label); + void BeginScope(const MachineInstr *MI); void EndScope(const MachineInstr *MI); }; Modified: projects/clangbsd/contrib/llvm/include/llvm/CodeGen/LiveInterval.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/CodeGen/LiveInterval.h Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/include/llvm/CodeGen/LiveInterval.h Sun Apr 4 08:47:34 2010 (r206157) @@ -67,7 +67,7 @@ namespace llvm { } cr; public: - + typedef SpecificBumpPtrAllocator Allocator; typedef SmallVector KillSet; /// The ID number of this value. @@ -330,12 +330,7 @@ namespace llvm { } void clear() { - while (!valnos.empty()) { - VNInfo *VNI = valnos.back(); - valnos.pop_back(); - VNI->~VNInfo(); - } - + valnos.clear(); ranges.clear(); } @@ -370,10 +365,8 @@ namespace llvm { /// getNextValue - Create a new value number and return it. MIIdx specifies /// the instruction that defines the value number. VNInfo *getNextValue(SlotIndex def, MachineInstr *CopyMI, - bool isDefAccurate, BumpPtrAllocator &VNInfoAllocator){ - VNInfo *VNI = - static_cast(VNInfoAllocator.Allocate((unsigned)sizeof(VNInfo), - alignof())); + bool isDefAccurate, VNInfo::Allocator &VNInfoAllocator) { + VNInfo *VNI = VNInfoAllocator.Allocate(); new (VNI) VNInfo((unsigned)valnos.size(), def, CopyMI); VNI->setIsDefAccurate(isDefAccurate); valnos.push_back(VNI); @@ -383,11 +376,8 @@ namespace llvm { /// Create a copy of the given value. The new value will be identical except /// for the Value number. VNInfo *createValueCopy(const VNInfo *orig, - BumpPtrAllocator &VNInfoAllocator) { - VNInfo *VNI = - static_cast(VNInfoAllocator.Allocate((unsigned)sizeof(VNInfo), - alignof())); - + VNInfo::Allocator &VNInfoAllocator) { + VNInfo *VNI = VNInfoAllocator.Allocate(); new (VNI) VNInfo((unsigned)valnos.size(), *orig); valnos.push_back(VNI); return VNI; @@ -427,14 +417,14 @@ namespace llvm { /// VNInfoAllocator since it will create a new val#. void MergeInClobberRanges(LiveIntervals &li_, const LiveInterval &Clobbers, - BumpPtrAllocator &VNInfoAllocator); + VNInfo::Allocator &VNInfoAllocator); /// MergeInClobberRange - Same as MergeInClobberRanges except it merge in a /// single LiveRange only. void MergeInClobberRange(LiveIntervals &li_, SlotIndex Start, SlotIndex End, - BumpPtrAllocator &VNInfoAllocator); + VNInfo::Allocator &VNInfoAllocator); /// MergeValueInAsValue - Merge all of the live ranges of a specific val# /// in RHS into this live interval as the specified value number. @@ -454,7 +444,7 @@ namespace llvm { /// Copy - Copy the specified live interval. This copies all the fields /// except for the register of the interval. void Copy(const LiveInterval &RHS, MachineRegisterInfo *MRI, - BumpPtrAllocator &VNInfoAllocator); + VNInfo::Allocator &VNInfoAllocator); bool empty() const { return ranges.empty(); } Modified: projects/clangbsd/contrib/llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h Sun Apr 4 08:47:34 2010 (r206157) @@ -55,7 +55,7 @@ namespace llvm { /// Special pool allocator for VNInfo's (LiveInterval val#). /// - BumpPtrAllocator VNInfoAllocator; + VNInfo::Allocator VNInfoAllocator; typedef DenseMap Reg2IntervalMap; Reg2IntervalMap r2iMap_; @@ -221,7 +221,7 @@ namespace llvm { indexes_->renumberIndexes(); } - BumpPtrAllocator& getVNInfoAllocator() { return VNInfoAllocator; } + VNInfo::Allocator& getVNInfoAllocator() { return VNInfoAllocator; } /// getVNInfoSourceReg - Helper function that parses the specified VNInfo /// copy field and returns the source register that defines it. Modified: projects/clangbsd/contrib/llvm/include/llvm/CodeGen/LiveStackAnalysis.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/CodeGen/LiveStackAnalysis.h Sun Apr 4 08:38:14 2010 (r206156) +++ projects/clangbsd/contrib/llvm/include/llvm/CodeGen/LiveStackAnalysis.h Sun Apr 4 08:47:34 2010 (r206157) @@ -27,7 +27,7 @@ namespace llvm { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon Apr 5 01:51:11 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 557B71065670; Mon, 5 Apr 2010 01:51:11 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 438E98FC13; Mon, 5 Apr 2010 01:51:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o351pBWn086446; Mon, 5 Apr 2010 01:51:11 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o351pBf9086437; Mon, 5 Apr 2010 01:51:11 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201004050151.o351pBf9086437@svn.freebsd.org> From: Nathan Whitehorn Date: Mon, 5 Apr 2010 01:51:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206173 - projects/ppc64/sys/boot/powerpc/ps3 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Apr 2010 01:51:11 -0000 Author: nwhitehorn Date: Mon Apr 5 01:51:11 2010 New Revision: 206173 URL: http://svn.freebsd.org/changeset/base/206173 Log: Checkpoint netboot support. The PS3 loader will now get a DHCP lease, load some files from NFS, and then mysteriously stall. Added: projects/ppc64/sys/boot/powerpc/ps3/devicename.c projects/ppc64/sys/boot/powerpc/ps3/ps3net.c Modified: projects/ppc64/sys/boot/powerpc/ps3/Makefile projects/ppc64/sys/boot/powerpc/ps3/conf.c projects/ppc64/sys/boot/powerpc/ps3/lv1call.S projects/ppc64/sys/boot/powerpc/ps3/lv1call.h projects/ppc64/sys/boot/powerpc/ps3/main.c projects/ppc64/sys/boot/powerpc/ps3/ps3cons.c Modified: projects/ppc64/sys/boot/powerpc/ps3/Makefile ============================================================================== --- projects/ppc64/sys/boot/powerpc/ps3/Makefile Sun Apr 4 23:45:13 2010 (r206172) +++ projects/ppc64/sys/boot/powerpc/ps3/Makefile Mon Apr 5 01:51:11 2010 (r206173) @@ -9,18 +9,18 @@ BINDIR?= /boot INSTALLFLAGS= -b # Architecture-specific loader code -SRCS= start.S conf.c metadata.c vers.c main.c lv1call.S -SRCS+= ps3cons.c font.h ps3mmu.c +SRCS= start.S conf.c metadata.c vers.c main.c devicename.c +SRCS+= lv1call.S ps3cons.c font.h ps3mmu.c ps3net.c SRCS+= ucmpdi2.c -LOADER_DISK_SUPPORT?= no -LOADER_UFS_SUPPORT?= no -LOADER_CD9660_SUPPORT?= no +LOADER_DISK_SUPPORT?= yes +LOADER_UFS_SUPPORT?= yes +LOADER_CD9660_SUPPORT?= yes LOADER_EXT2FS_SUPPORT?= no -LOADER_NET_SUPPORT?= no -LOADER_NFS_SUPPORT?= no +LOADER_NET_SUPPORT?= yes +LOADER_NFS_SUPPORT?= yes LOADER_TFTP_SUPPORT?= no -LOADER_GZIP_SUPPORT?= no +LOADER_GZIP_SUPPORT?= yes LOADER_BZIP2_SUPPORT?= no .if ${LOADER_DISK_SUPPORT} == "yes" Modified: projects/ppc64/sys/boot/powerpc/ps3/conf.c ============================================================================== --- projects/ppc64/sys/boot/powerpc/ps3/conf.c Sun Apr 4 23:45:13 2010 (r206172) +++ projects/ppc64/sys/boot/powerpc/ps3/conf.c Mon Apr 5 01:51:11 2010 (r206173) @@ -46,7 +46,9 @@ __FBSDID("$FreeBSD: projects/ppc64/sys/b /* Exported for libstand */ struct devsw *devsw[] = { #if defined(LOADER_DISK_SUPPORT) || defined(LOADER_CD9660_SUPPORT) - &ofwdisk, +#ifdef NOTYET + &ps3disk, +#endif #endif #if defined(LOADER_NET_SUPPORT) &netdev, @@ -79,9 +81,11 @@ struct fs_ops *file_system[] = { NULL }; +extern struct netif_driver ps3net; + struct netif_driver *netif_drivers[] = { #if defined(LOADER_NET_SUPPORT) - &ofwnet, + &ps3net, #endif NULL, }; Added: projects/ppc64/sys/boot/powerpc/ps3/devicename.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ppc64/sys/boot/powerpc/ps3/devicename.c Mon Apr 5 01:51:11 2010 (r206173) @@ -0,0 +1,249 @@ +/*- + * Copyright (c) 1998 Michael Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD: projects/ppc64/sys/boot/ps3/lib/devicename.c 191829 2009-05-05 16:29:08Z raj $"); + +#include + +#include +#include + +#include "bootstrap.h" + +static int ps3_parsedev(struct devdesc **dev, const char *devspec, + const char **path); + +/* + * Point (dev) at an allocated device specifier for the device matching the + * path in (devspec). If it contains an explicit device specification, + * use that. If not, use the default device. + */ +int +ps3_getdev(void **vdev, const char *devspec, const char **path) +{ + struct devdesc **dev = (struct devdesc **)vdev; + int rv; + + /* + * If it looks like this is just a path and no + * device, go with the current device. + */ + if ((devspec == NULL) || (devspec[0] == '/') || + (strchr(devspec, ':') == NULL)) { + + if (((rv = ps3_parsedev(dev, getenv("currdev"), NULL)) == 0) + && (path != NULL)) + *path = devspec; + return(rv); + } + + /* + * Try to parse the device name off the beginning of the devspec. + */ + return (ps3_parsedev(dev, devspec, path)); +} + +/* + * Point (dev) at an allocated device specifier matching the string version + * at the beginning of (devspec). Return a pointer to the remaining + * text in (path). + * + * In all cases, the beginning of (devspec) is compared to the names + * of known devices in the device switch, and then any following text + * is parsed according to the rules applied to the device type. + * + * For disk-type devices, the syntax is: + * + * disk[]: + * + */ +static int +ps3_parsedev(struct devdesc **dev, const char *devspec, const char **path) +{ + struct devdesc *idev; + struct devsw *dv; + char *cp; + const char *np; + int i, unit, pnum, ptype, err; + + /* minimum length check */ + if (strlen(devspec) < 2) + return(EINVAL); + + /* look for a device that matches */ + for (i = 0, dv = NULL; devsw[i] != NULL; i++) { + if (!strncmp(devspec, devsw[i]->dv_name, + strlen(devsw[i]->dv_name))) { + dv = devsw[i]; + break; + } + } + if (dv == NULL) + return(ENOENT); + idev = malloc(sizeof(struct devdesc)); + err = 0; + np = (devspec + strlen(dv->dv_name)); + + switch(dv->dv_type) { + case DEVT_NONE: + break; + +#ifdef NOTYET + case DEVT_DISK: + unit = -1; + pnum = -1; + ptype = -1; + if (*np && (*np != ':')) { + /* next comes the unit number */ + unit = strtol(np, &cp, 10); + if (cp == np) { + err = EUNIT; + goto fail; + } + if (*cp && (*cp != ':')) { + /* get partition */ + if (*cp == 'p' && *(cp + 1) && + *(cp + 1) != ':') { + pnum = strtol(cp + 1, &cp, 10); + ptype = PTYPE_GPT; + } else { + pnum = *cp - 'a'; + ptype = PTYPE_BSDLABEL; + if ((pnum < 0) || + (pnum >= MAXPARTITIONS)) { + err = EPART; + goto fail; + } + cp++; + } + } + } + if (*cp && (*cp != ':')) { + err = EINVAL; + goto fail; + } + + idev->d_unit = unit; + idev->d_disk.pnum = pnum; + idev->d_disk.ptype = ptype; + idev->d_disk.data = NULL; + if (path != NULL) + *path = (*cp == 0) ? cp : cp + 1; + break; +#endif + + case DEVT_NET: + unit = 0; + + if (*np && (*np != ':')) { + /* get unit number if present */ + unit = strtol(np, &cp, 0); + if (cp == np) { + err = EUNIT; + goto fail; + } + } + if (*cp && (*cp != ':')) { + err = EINVAL; + goto fail; + } + idev->d_unit = unit; + + if (path != NULL) + *path = (*cp == 0) ? cp : cp + 1; + break; + + default: + err = EINVAL; + goto fail; + } + idev->d_dev = dv; + idev->d_type = dv->dv_type; + if (dev == NULL) { + free(idev); + } else { + *dev = idev; + } + return (0); + +fail: + free(idev); + return (err); +} + + +char * +ps3_fmtdev(void *vdev) +{ + struct devdesc *dev = (struct devdesc *)vdev; + char *cp; + static char buf[128]; + + switch(dev->d_type) { + case DEVT_NONE: + strcpy(buf, "(no device)"); + break; + +#ifdef NOTYET + case DEVT_DISK: + cp = buf; + cp += sprintf(cp, "%s%d", dev->d_dev->dv_name, dev->d_unit); + if (dev->d_kind.disk.pnum >= 0) { + if (dev->d_kind.disk.ptype == PTYPE_BSDLABEL) + cp += sprintf(cp, "%c", + dev->d_kind.disk.pnum + 'a'); + else if (dev->d_kind.disk.ptype == PTYPE_GPT) + cp += sprintf(cp, "p%i", + dev->d_kind.disk.pnum); + } + + strcat(cp, ":"); + break; +#endif + + case DEVT_NET: + sprintf(buf, "%s%d:", dev->d_dev->dv_name, dev->d_unit); + break; + } + return(buf); +} + +/* + * Set currdev to suit the value being supplied in (value). + */ +int +ps3_setcurrdev(struct env_var *ev, int flags, const void *value) +{ + struct devdesc *ncurr; + int rv; + + if ((rv = ps3_parsedev(&ncurr, value, NULL)) != 0) + return (rv); + free(ncurr); + env_setenv(ev->ev_name, flags | EV_NOHOOK, value, NULL, NULL); + return (0); +} Modified: projects/ppc64/sys/boot/powerpc/ps3/lv1call.S ============================================================================== --- projects/ppc64/sys/boot/powerpc/ps3/lv1call.S Sun Apr 4 23:45:13 2010 (r206172) +++ projects/ppc64/sys/boot/powerpc/ps3/lv1call.S Mon Apr 5 01:51:11 2010 (r206173) @@ -9,6 +9,36 @@ addis r,r,high; \ addi r,r,low; +#define SIMPLE_HVCALL(x, c) \ +.global x; \ +x: \ + mflr %r0; \ + stw %r0,4(%r1); \ + clrldi %r3,%r3,32; \ + clrldi %r4,%r4,32; \ + clrldi %r5,%r5,32; \ + clrldi %r6,%r6,32; \ + clrldi %r7,%r7,32; \ + clrldi %r8,%r8,32; \ + clrldi %r9,%r9,32; \ + clrldi %r10,%r10,32; \ + li %r11,c; \ + hc; \ + extsw %r3,%r3; \ + lwz %r0,4(%r1); \ + mtlr %r0; \ + blr + +SIMPLE_HVCALL(lv1_open_device, 170) +SIMPLE_HVCALL(lv1_close_device, 171) +SIMPLE_HVCALL(lv1_gpu_open, 210) +SIMPLE_HVCALL(lv1_gpu_context_attribute, 225) +SIMPLE_HVCALL(lv1_panic, 255) +SIMPLE_HVCALL(lv1_net_start_tx_dma, 187) +SIMPLE_HVCALL(lv1_net_stop_tx_dma, 188) +SIMPLE_HVCALL(lv1_net_start_rx_dma, 189) +SIMPLE_HVCALL(lv1_net_stop_rx_dma, 190) + .global lv1_get_physmem lv1_get_physmem: mflr %r0 @@ -98,45 +128,6 @@ lv1_insert_pte: mtlr %r0 blr -.global lv1_panic -lv1_panic: - mflr %r0 - stw %r0,4(%r1) - - li %r11,255 - hc - extsw %r3,%r3 - - lwz %r0,4(%r1) - mtlr %r0 - blr - -.global lv1_gpu_open -lv1_gpu_open: - mflr %r0 - stw %r0,4(%r1) - - li %r11,210 - hc - extsw %r3,%r3 - - lwz %r0,4(%r1) - mtlr %r0 - blr - -.global lv1_gpu_context_attribute -lv1_gpu_context_attribute: - mflr %r0 - stw %r0,4(%r1) - - li %r11,225 - hc - extsw %r3,%r3 - - lwz %r0,4(%r1) - mtlr %r0 - blr - .global lv1_gpu_context_allocate lv1_gpu_context_allocate: mflr %r0 @@ -180,3 +171,59 @@ lv1_gpu_memory_allocate: mtlr %r0 blr +.global lv1_net_control +lv1_net_control: + mflr %r0 + stw %r0,4(%r1) + stw %r9,-4(%r1) + + li %r11,194 + hc + extsw %r3,%r3 + + lwz %r8,-4(%r1) + std %r4,0(%r8) + + lwz %r0,4(%r1) + mtlr %r0 + blr + +.global lv1_setup_dma +lv1_setup_dma: + mflr %r0 + stw %r0,4(%r1) + stw %r3,-4(%r1) + stw %r4,-8(%r1) + stw %r5,-12(%r1) + + lwz %r3,-4(%r1) + lwz %r4,-8(%r1) + lis %r5,0x0800 /* 128 MB */ + li %r6,24 /* log2(IO_PAGESIZE) */ + li %r7,0 /* flags */ + li %r11,174 /* lv1_allocate_device_dma_region */ + hc + extsw %r3,%r3 + cmpdi %r3,0 + bne 1f + std %r4,-24(%r1) + + lwz %r3,-4(%r1) + lwz %r4,-8(%r1) + li %r5,0 + ld %r6,-24(%r1) + lis %r7,0x0800 /* 128 MB */ + lis %r8,0xf800 /* flags */ + sldi %r8,%r8,32 + li %r11,176 /* lv1_map_device_dma_region */ + hc + extsw %r3,%r3 + + lwz %r9,-12(%r1) + ld %r6,-24(%r1) + std %r6,0(%r9) + +1: lwz %r0,4(%r1) + mtlr %r0 + blr + Modified: projects/ppc64/sys/boot/powerpc/ps3/lv1call.h ============================================================================== --- projects/ppc64/sys/boot/powerpc/ps3/lv1call.h Sun Apr 4 23:45:13 2010 (r206172) +++ projects/ppc64/sys/boot/powerpc/ps3/lv1call.h Mon Apr 5 01:51:11 2010 (r206173) @@ -45,5 +45,26 @@ int lv1_gpu_memory_allocate(int size, in uint64_t *paddr); int lv1_gpu_context_allocate(uint64_t handle, int, uint64_t *context); +int lv1_open_device(int, int, int /* 0 */); +int lv1_close_device(int, int); +int lv1_setup_dma(int, int, uint64_t *dmabase); + +#define GELIC_GET_MAC_ADDRESS 0x0001 +#define GELIC_GET_LINK_STATUS 0x0002 +#define GELIC_LINK_UP 0x0001 +#define GELIC_FULL_DUPLEX 0x0002 +#define GELIC_AUTO_NEG 0x0004 +#define GELIC_SPEED_10 0x0010 +#define GELIC_SPEED_100 0x0020 +#define GELIC_SPEED_1000 0x0040 +#define GELIC_GET_VLAN_ID 0x0004 + +int lv1_net_init(int bus, int dev); +int lv1_net_control(int bus, int dev, int, int, int, int, uint64_t *); +int lv1_net_start_tx_dma(int bus, int dev, uint32_t addr, int); +int lv1_net_start_rx_dma(int bus, int dev, uint32_t addr, int); +int lv1_net_stop_tx_dma(int bus, int dev, int); +int lv1_net_stop_rx_dma(int bus, int dev, int); + #endif Modified: projects/ppc64/sys/boot/powerpc/ps3/main.c ============================================================================== --- projects/ppc64/sys/boot/powerpc/ps3/main.c Sun Apr 4 23:45:13 2010 (r206172) +++ projects/ppc64/sys/boot/powerpc/ps3/main.c Mon Apr 5 01:51:11 2010 (r206173) @@ -29,6 +29,9 @@ __FBSDID("$FreeBSD: head/sys/boot/powerp #include #include +#define _KERNEL +#include + #include "bootstrap.h" #include "lv1call.h" #include "ps3.h" @@ -41,6 +44,10 @@ extern char bootprog_rev[]; extern char bootprog_date[]; extern char bootprog_maker[]; +int ps3_getdev(void **vdev, const char *devspec, const char **path); + +static uint64_t basetb; + int main(void) { @@ -70,16 +77,28 @@ main(void) if (devsw[i]->dv_init != NULL) (devsw[i]->dv_init)(); + /* + * Get timebase at boot. + */ + basetb = mftb(); + + archsw.arch_getdev = ps3_getdev; + printf("\n"); printf("%s, Revision %s\n", bootprog_name, bootprog_rev); printf("(%s, %s)\n", bootprog_maker, bootprog_date); printf("Memory: %lldKB\n", maxmem / 1024); + env_setenv("currdev", EV_VOLATILE, "net", NULL, NULL); + env_setenv("loaddev", EV_VOLATILE, "net", NULL, NULL); + interact(); /* doesn't return */ return (0); } +const u_int ns_per_tick = 12; + void exit(int code) { @@ -88,12 +107,18 @@ exit(int code) void delay(int usecs) { + uint64_t tb,ttb; + tb = mftb(); + + ttb = tb + (usecs * 1000 + ns_per_tick - 1) / ns_per_tick; + while (tb < ttb) + tb = mftb(); } int getsecs() { - return (0); + return ((mftb() - basetb)*ns_per_tick/1000000000); } time_t @@ -102,4 +127,3 @@ time(time_t *tloc) return (0); } - Modified: projects/ppc64/sys/boot/powerpc/ps3/ps3cons.c ============================================================================== --- projects/ppc64/sys/boot/powerpc/ps3/ps3cons.c Sun Apr 4 23:45:13 2010 (r206172) +++ projects/ppc64/sys/boot/powerpc/ps3/ps3cons.c Mon Apr 5 01:51:11 2010 (r206173) @@ -115,41 +115,44 @@ ps3cons_putchar(int c) int i, j, k; u_char *p; - if (c == 0 || c == '\r') - return; - - /* Move down on newlines */ - if (c == '\n') { - y += FONT_SIZE; - x = 0; - return; - } + fg = FG_COLOR; + bg = BG_COLOR; - /* Wrap long lines */ - if (x + XMARGIN + FONT_SIZE > fb_width - XMARGIN) { + switch (c) { + case '\0': + case '\r': + break; + case '\n': y += FONT_SIZE; x = 0; - } + break; + case '\b': + x = max(0, x - 8); + break; + default: + /* Wrap long lines */ + if (x + XMARGIN + FONT_SIZE > fb_width - XMARGIN) { + y += FONT_SIZE; + x = 0; + } + addr = fb_vaddr + (y + YMARGIN)*fb_width + (x + XMARGIN); + p = FONT + c*FONT_SIZE; - fg = FG_COLOR; - bg = BG_COLOR; - - addr = fb_vaddr + (y + YMARGIN)*fb_width + (x + XMARGIN); - p = FONT + c*FONT_SIZE; + for (i = 0; i < FONT_SIZE; i++) { + for (j = 0, k = 7; j < 8; j++, k--) { + if ((p[i] & (1 << k)) == 0) + *(addr + j) = bg; + else + *(addr + j) = fg; + } - for (i = 0; i < FONT_SIZE; i++) { - for (j = 0, k = 7; j < 8; j++, k--) { - if ((p[i] & (1 << k)) == 0) - *(addr + j) = bg; - else - *(addr + j) = fg; + addr += fb_width; } - addr += fb_width; + x += 8; + break; } - - x += 8; } static int Added: projects/ppc64/sys/boot/powerpc/ps3/ps3net.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ppc64/sys/boot/powerpc/ps3/ps3net.c Mon Apr 5 01:51:11 2010 (r206173) @@ -0,0 +1,271 @@ +/*- + * Copyright (C) 2010 Nathan Whitehorn + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL TOOLS GMBH BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD: head/sys/boot/powerpc/ofw/start.c 174722 2007-12-17 22:18:07Z marcel $"); + +#include +#include + +#include +#include +#include +#include +#include + +#define _KERNEL +#include + +#include +#include +#include +#include "bootstrap.h" +#include "lv1call.h" +#include "ps3.h" + +#define GELIC_DESCR_OWNED 0xa0000000 +#define GELIC_CMDSTAT_NOIPSEC 0x00080000 +#define GELIC_CMDSTAT_LAST 0x00040000 +#define GELIC_RXERRORS 0x7def8000 + +#define GELIC_POLL_PERIOD 100 /* microseconds */ + +static int ps3net_probe(struct netif *, void *); +static int ps3net_match(struct netif *, void *); +static void ps3net_init(struct iodesc *, void *); +static int ps3net_get(struct iodesc *, void *, size_t, time_t); +static int ps3net_put(struct iodesc *, void *, size_t); +static void ps3net_end(struct netif *); + +struct netif_stats ps3net_stats[1]; +struct netif_dif ps3net_ifs[] = {{0, 1, ps3net_stats, 0}}; + +/* XXX: Get from firmware, not hardcoding */ +static int busid = 1; +static int devid = 0; +static int vlan; +static uint64_t dma_base; + +struct gelic_dmadesc { + uint32_t paddr; + uint32_t len; + uint32_t next; + uint32_t cmd_stat; + uint32_t result_size; + uint32_t valid_size; + uint32_t data_stat; + uint32_t rxerror; +}; + +struct netif_driver ps3net = { + "net", + ps3net_match, + ps3net_probe, + ps3net_init, + ps3net_get, + ps3net_put, + ps3net_end, + ps3net_ifs, 1 +}; + +static int +ps3net_match(struct netif *nif, void *machdep_hint) +{ + return (1); +} + +static int +ps3net_probe(struct netif *nif, void *machdep_hint) +{ + return (0); +} + +static int +ps3net_put(struct iodesc *desc, void *pkt, size_t len) +{ + volatile static struct gelic_dmadesc txdesc __aligned(32); + volatile static uint64_t txbuf[200] __aligned(128); + size_t sendlen; + int err; + +#if defined(NETIF_DEBUG) + struct ether_header *eh; + + printf("net_put: desc %p, pkt %p, len %d\n", desc, pkt, len); + eh = pkt; + printf("dst: %s ", ether_sprintf(eh->ether_dhost)); + printf("src: %s ", ether_sprintf(eh->ether_shost)); + printf("type: 0x%x\n", eh->ether_type & 0xffff); +#endif + + while (txdesc.cmd_stat & GELIC_DESCR_OWNED) + delay(10); + + /* + * We must add 4 extra bytes to this packet to store the destination + * VLAN. + */ + memcpy(txbuf, pkt, 12); + sendlen = 12; + + if (vlan >= 0) { + sendlen += 4; + ((uint8_t *)txbuf)[12] = 0x81; + ((uint8_t *)txbuf)[13] = 0x00; + ((uint8_t *)txbuf)[14] = vlan >> 8; + ((uint8_t *)txbuf)[15] = vlan & 0xff; + } + memcpy((void *)txbuf + sendlen, pkt + 12, len - 12); + sendlen += len - 12; + + bzero(&txdesc, sizeof(txdesc)); + txdesc.paddr = dma_base + (uint32_t)txbuf; + txdesc.len = sendlen; + txdesc.cmd_stat = GELIC_CMDSTAT_NOIPSEC | GELIC_CMDSTAT_LAST | + GELIC_DESCR_OWNED; + + powerpc_sync(); + + do { + err = lv1_net_start_tx_dma(busid, devid, + dma_base + (uint32_t)&txdesc, 0); + delay(1); + } while (err != 0); + + return (len); +} + +static int +ps3net_get(struct iodesc *desc, void *pkt, size_t len, time_t timeout) +{ + volatile static struct gelic_dmadesc rxdesc __aligned(32); + volatile static uint64_t rxbuf[200] __aligned(128); + int err = 0; + + if (len == 0) + goto restartdma; + + timeout *= 1000000; /* convert to microseconds */ + while (rxdesc.cmd_stat & GELIC_DESCR_OWNED) { + if (timeout < GELIC_POLL_PERIOD) + return (ETIMEDOUT); + delay(GELIC_POLL_PERIOD); + timeout -= GELIC_POLL_PERIOD; + } + + delay(200); + if (rxdesc.rxerror & GELIC_RXERRORS) { + err = -1; + goto restartdma; + } + + /* + * Copy the packet to the receive buffer, leaving out the + * 2 byte VLAN header. + */ + len = min(len, rxdesc.valid_size - 2); + memcpy(pkt, (u_char *)rxbuf + 2, len); + err = len; + +#if defined(NETIF_DEBUG) +{ + struct ether_header *eh; + + printf("net_get: desc %p, pkt %p, len %d\n", desc, pkt, len); + eh = pkt; + printf("dst: %s ", ether_sprintf(eh->ether_dhost)); + printf("src: %s ", ether_sprintf(eh->ether_shost)); + printf("type: 0x%x\n", eh->ether_type & 0xffff); +} +#endif + +restartdma: + bzero(&rxdesc, sizeof(rxdesc)); + rxdesc.paddr = dma_base + (uint32_t)rxbuf; + rxdesc.len = sizeof(rxbuf); + rxdesc.cmd_stat = GELIC_DESCR_OWNED; + + powerpc_sync(); + + lv1_net_start_rx_dma(busid, devid, dma_base + (uint32_t)&rxdesc, 0); + + return (err); +} + +static void +ps3net_init(struct iodesc *desc, void *machdep_hint) +{ + uint64_t mac, val; + int i,err; + + err = lv1_open_device(busid, devid, 0); + + lv1_net_stop_tx_dma(busid, devid, 0); + lv1_net_stop_rx_dma(busid, devid, 0); + + /* + * Wait for link to come up + */ + + for (i = 0; i < 1000; i++) { + lv1_net_control(busid, devid, GELIC_GET_LINK_STATUS, 2, 0, + 0, &val); + if (val & GELIC_LINK_UP) + break; + delay(500); + } + + /* + * Set up DMA IOMMU entries + */ + + err = lv1_setup_dma(busid, devid, &dma_base); + + /* + * Get MAC address and VLAN IDs + */ + + lv1_net_control(busid, devid, GELIC_GET_MAC_ADDRESS, 0, 0, 0, &mac); + bcopy(&((uint8_t *)&mac)[2], desc->myea, sizeof(desc->myea)); + + vlan = -1; + err = lv1_net_control(busid, devid, GELIC_GET_VLAN_ID, 2, 0, + 0, &val); + if (err == 0) + vlan = val; + + /* + * Start RX DMA engine + */ + + ps3net_get(NULL, NULL, 0, 0); +} + +static void +ps3net_end(struct netif *nif) +{ + lv1_close_device(busid, devid); +} + From owner-svn-src-projects@FreeBSD.ORG Mon Apr 5 18:04:01 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C8F871065670; Mon, 5 Apr 2010 18:04:01 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B78D58FC18; Mon, 5 Apr 2010 18:04:01 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o35I41ef003039; Mon, 5 Apr 2010 18:04:01 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o35I411E003037; Mon, 5 Apr 2010 18:04:01 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <201004051804.o35I411E003037@svn.freebsd.org> From: Roman Divacky Date: Mon, 5 Apr 2010 18:04:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206193 - projects/clangbsd/gnu/lib/libstdc++ X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Apr 2010 18:04:01 -0000 Author: rdivacky Date: Mon Apr 5 18:04:01 2010 New Revision: 206193 URL: http://svn.freebsd.org/changeset/base/206193 Log: libstdc++ builds just fine except for the 32bit case Modified: projects/clangbsd/gnu/lib/libstdc++/Makefile Modified: projects/clangbsd/gnu/lib/libstdc++/Makefile ============================================================================== --- projects/clangbsd/gnu/lib/libstdc++/Makefile Mon Apr 5 18:04:01 2010 (r206192) +++ projects/clangbsd/gnu/lib/libstdc++/Makefile Mon Apr 5 18:04:01 2010 (r206193) @@ -21,7 +21,10 @@ CFLAGS+= -I${GCCLIB}/include -I${SRCDIR} CFLAGS+= -frandom-seed=RepeatabilityConsideredGood CXXFLAGS+= -fno-implicit-templates -ffunction-sections -fdata-sections \ -Wno-deprecated +.if ${CC:M*lib32*} +# See: http://llvm.org/bugs/show_bug.cgi?id=6780 CXX:=${CXX:C/^c\+\+|^clang\+\+/g++/} +.endif PO_CXXFLAGS= ${CXXFLAGS:N-ffunction-sections} DPADD= ${LIBM} From owner-svn-src-projects@FreeBSD.ORG Mon Apr 5 18:05:09 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A9B461065675; Mon, 5 Apr 2010 18:05:09 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9895A8FC14; Mon, 5 Apr 2010 18:05:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o35I594w003406; Mon, 5 Apr 2010 18:05:09 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o35I59so003404; Mon, 5 Apr 2010 18:05:09 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <201004051805.o35I59so003404@svn.freebsd.org> From: Roman Divacky Date: Mon, 5 Apr 2010 18:05:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206195 - projects/clangbsd X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Apr 2010 18:05:09 -0000 Author: rdivacky Date: Mon Apr 5 18:05:09 2010 New Revision: 206195 URL: http://svn.freebsd.org/changeset/base/206195 Log: relink /usr/bin/{as,ld} to the lib32 tmp so the -B can pick 'em up Modified: projects/clangbsd/Makefile.inc1 Modified: projects/clangbsd/Makefile.inc1 ============================================================================== --- projects/clangbsd/Makefile.inc1 Mon Apr 5 18:04:08 2010 (r206194) +++ projects/clangbsd/Makefile.inc1 Mon Apr 5 18:05:09 2010 (r206195) @@ -443,10 +443,10 @@ build32: mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \ -p ${LIB32TMP}/usr/include >/dev/null mkdir -p ${WORLDTMP} - # relink /usr/bin to the lib32 tmp so the -B can pick up + # relink /usr/bin/{as,ld} to the lib32 tmp so the -B can pick 'em up # the /usr/bin/ld and /usr/bin/as - rm -rf ${LIB32TMP}/usr/bin/ - ln -sf ${WORLDTMP}/usr/bin/ ${LIB32TMP}/usr/bin + ln -sf ${WORLDTMP}/usr/bin/as ${LIB32TMP}/as + ln -sf ${WORLDTMP}/usr/bin/ld ${LIB32TMP}/ld ln -sf ${.CURDIR}/sys ${WORLDTMP} .if ${MK_KERBEROS} != "no" .for _t in obj depend all From owner-svn-src-projects@FreeBSD.ORG Tue Apr 6 10:27:23 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 79D53106566C; Tue, 6 Apr 2010 10:27:23 +0000 (UTC) (envelope-from bms@incunabulum.net) Received: from out3.smtp.messagingengine.com (out3.smtp.messagingengine.com [66.111.4.27]) by mx1.freebsd.org (Postfix) with ESMTP id 3E4048FC0C; Tue, 6 Apr 2010 10:27:23 +0000 (UTC) Received: from compute1.internal (compute1.internal [10.202.2.41]) by gateway1.messagingengine.com (Postfix) with ESMTP id CB70FE90C0; Tue, 6 Apr 2010 06:27:22 -0400 (EDT) Received: from heartbeat2.messagingengine.com ([10.202.2.161]) by compute1.internal (MEProxy); Tue, 06 Apr 2010 06:27:22 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=messagingengine.com; h=message-id:date:from:mime-version:to:cc:subject:references:in-reply-to:content-type:content-transfer-encoding; s=smtpout; bh=UiFNW6GIvR8p4h5rM3/6CSQbOgM=; b=nx23sQrzuKAUuM3D6qsoKarAENTQThVyh/15ldJW+N7iBj2ASECZjUy7lm6yQ+GAuyV8WD5UEeuO5khaEJj5wZ2OK0WvIfcV2bcaOUFDHSctuNrRZO0NqiBJH5P1r0x2Apj1jyxu8cgcaNJC9JSacm68ByNOwtCAkSiBKeRba/g= X-Sasl-enc: ABjXZXU4ClukAH4hGQCPApwl322afHDDTYga8dnTh+uk 1270549642 Received: from anglepoise.lon.incunabulum.net (cpc2-dals7-0-0-cust253.hari.cable.virginmedia.com [82.35.112.254]) by mail.messagingengine.com (Postfix) with ESMTPSA id 4A9A719621; Tue, 6 Apr 2010 06:27:22 -0400 (EDT) Message-ID: <4BBB0C87.2020702@incunabulum.net> Date: Tue, 06 Apr 2010 11:27:19 +0100 From: Bruce Simpson User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.1.8) Gecko/20100302 Thunderbird/3.0.3 MIME-Version: 1.0 To: Roman Divacky References: <201004051804.o35I411E003037@svn.freebsd.org> In-Reply-To: <201004051804.o35I411E003037@svn.freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r206193 - projects/clangbsd/gnu/lib/libstdc++ X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Apr 2010 10:27:23 -0000 On 04/05/10 19:04, Roman Divacky wrote: > Author: rdivacky > Date: Mon Apr 5 18:04:01 2010 > New Revision: 206193 > URL: http://svn.freebsd.org/changeset/base/206193 > > Log: > libstdc++ builds just fine except for the 32bit case > Wow, that's major progress...! From owner-svn-src-projects@FreeBSD.ORG Tue Apr 6 10:32:21 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C5113106564A; Tue, 6 Apr 2010 10:32:21 +0000 (UTC) (envelope-from rdivacky@vlk.vlakno.cz) Received: from vlakno.cz (77-93-215-190.static.masterinter.net [77.93.215.190]) by mx1.freebsd.org (Postfix) with ESMTP id 7E9E98FC13; Tue, 6 Apr 2010 10:32:18 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by vlakno.cz (Postfix) with ESMTP id D0B169CB0C6; Tue, 6 Apr 2010 12:30:17 +0200 (CEST) X-Virus-Scanned: amavisd-new at vlakno.cz Received: from vlakno.cz ([127.0.0.1]) by localhost (lev.vlakno.cz [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kHKLlbPbUhxt; Tue, 6 Apr 2010 12:30:15 +0200 (CEST) Received: from vlk.vlakno.cz (localhost [127.0.0.1]) by vlakno.cz (Postfix) with ESMTP id A3ADF9CB0E8; Tue, 6 Apr 2010 12:30:15 +0200 (CEST) Received: (from rdivacky@localhost) by vlk.vlakno.cz (8.14.3/8.14.3/Submit) id o36AUFsx010050; Tue, 6 Apr 2010 12:30:15 +0200 (CEST) (envelope-from rdivacky) Date: Tue, 6 Apr 2010 12:30:15 +0200 From: Roman Divacky To: Bruce Simpson Message-ID: <20100406103015.GA9942@freebsd.org> References: <201004051804.o35I411E003037@svn.freebsd.org> <4BBB0C87.2020702@incunabulum.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4BBB0C87.2020702@incunabulum.net> User-Agent: Mutt/1.4.2.3i Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r206193 - projects/clangbsd/gnu/lib/libstdc++ X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Apr 2010 10:32:21 -0000 On Tue, Apr 06, 2010 at 11:27:19AM +0100, Bruce Simpson wrote: > On 04/05/10 19:04, Roman Divacky wrote: > >Author: rdivacky > >Date: Mon Apr 5 18:04:01 2010 > >New Revision: 206193 > >URL: http://svn.freebsd.org/changeset/base/206193 > > > >Log: > > libstdc++ builds just fine except for the 32bit case > > > > > Wow, that's major progress...! tonight I'll be updating llvm/clang again so the 32bit case compiles too :) From owner-svn-src-projects@FreeBSD.ORG Tue Apr 6 14:35:31 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 20B9C106564A; Tue, 6 Apr 2010 14:35:31 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0D7598FC0A; Tue, 6 Apr 2010 14:35:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o36EZUhq092517; Tue, 6 Apr 2010 14:35:30 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o36EZU9T092513; Tue, 6 Apr 2010 14:35:30 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201004061435.o36EZU9T092513@svn.freebsd.org> From: Nathan Whitehorn Date: Tue, 6 Apr 2010 14:35:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206272 - in projects/ppc64/sys/powerpc: aim booke powerpc X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Apr 2010 14:35:31 -0000 Author: nwhitehorn Date: Tue Apr 6 14:35:30 2010 New Revision: 206272 URL: http://svn.freebsd.org/changeset/base/206272 Log: Add support for bounce pages to make DMA usable on memory above 4 GB (2 GB on Apple machines) by replacing the existing PowerPC busdma_machdep.c with the one from amd64. Eventually we will need support for IOMMUs, in particular to run under most PowerPC hypervisors, but this will do for now. This commit is the final piece of the powerpc64 port. Obtained from: amd64 Modified: projects/ppc64/sys/powerpc/aim/vm_machdep.c projects/ppc64/sys/powerpc/booke/vm_machdep.c projects/ppc64/sys/powerpc/powerpc/busdma_machdep.c Modified: projects/ppc64/sys/powerpc/aim/vm_machdep.c ============================================================================== --- projects/ppc64/sys/powerpc/aim/vm_machdep.c Tue Apr 6 14:07:48 2010 (r206271) +++ projects/ppc64/sys/powerpc/aim/vm_machdep.c Tue Apr 6 14:35:30 2010 (r206272) @@ -371,10 +371,9 @@ sf_buf_free(struct sf_buf *sf) void swi_vm(void *dummy) { -#if 0 /* XXX: Don't have busdma stuff yet */ + if (busdma_swi_pending != 0) busdma_swi(); -#endif } /* Modified: projects/ppc64/sys/powerpc/booke/vm_machdep.c ============================================================================== --- projects/ppc64/sys/powerpc/booke/vm_machdep.c Tue Apr 6 14:07:48 2010 (r206271) +++ projects/ppc64/sys/powerpc/booke/vm_machdep.c Tue Apr 6 14:35:30 2010 (r206272) @@ -357,10 +357,9 @@ sf_buf_free(struct sf_buf *sf) void swi_vm(void *dummy) { -#if 0 /* XXX: Don't have busdma stuff yet */ + if (busdma_swi_pending != 0) busdma_swi(); -#endif } /* Modified: projects/ppc64/sys/powerpc/powerpc/busdma_machdep.c ============================================================================== --- projects/ppc64/sys/powerpc/powerpc/busdma_machdep.c Tue Apr 6 14:07:48 2010 (r206271) +++ projects/ppc64/sys/powerpc/powerpc/busdma_machdep.c Tue Apr 6 14:35:30 2010 (r206272) @@ -1,5 +1,4 @@ /*- - * Copyright (c) 2002 Peter Grehan * Copyright (c) 1997, 1998 Justin T. Gibbs. * All rights reserved. * @@ -23,27 +22,28 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * From i386/busdma_machdep.c,v 1.26 2002/04/19 22:58:09 alfred */ -#include -__FBSDID("$FreeBSD$"); - /* - * Bus dma support routines + * From amd64/busdma_machdep.c, r204214 */ +#include +__FBSDID("$FreeBSD$"); + #include #include #include #include #include +#include +#include #include #include #include #include #include +#include #include #include @@ -51,34 +51,122 @@ __FBSDID("$FreeBSD$"); #include #include -#include +#include + +#define MAX_BPAGES 8192 + +struct bounce_zone; struct bus_dma_tag { - bus_dma_tag_t parent; - bus_size_t alignment; - bus_size_t boundary; - bus_addr_t lowaddr; - bus_addr_t highaddr; + bus_dma_tag_t parent; + bus_size_t alignment; + bus_size_t boundary; + bus_addr_t lowaddr; + bus_addr_t highaddr; bus_dma_filter_t *filter; - void *filterarg; - bus_size_t maxsize; - u_int nsegments; - bus_size_t maxsegsz; - int flags; - int ref_count; - int map_count; + void *filterarg; + bus_size_t maxsize; + u_int nsegments; + bus_size_t maxsegsz; + int flags; + int ref_count; + int map_count; bus_dma_lock_t *lockfunc; void *lockfuncarg; + bus_dma_segment_t *segments; + struct bounce_zone *bounce_zone; +}; + +struct bounce_page { + vm_offset_t vaddr; /* kva of bounce buffer */ + bus_addr_t busaddr; /* Physical address */ + vm_offset_t datavaddr; /* kva of client data */ + bus_size_t datacount; /* client data count */ + STAILQ_ENTRY(bounce_page) links; +}; + +int busdma_swi_pending; + +struct bounce_zone { + STAILQ_ENTRY(bounce_zone) links; + STAILQ_HEAD(bp_list, bounce_page) bounce_page_list; + int total_bpages; + int free_bpages; + int reserved_bpages; + int active_bpages; + int total_bounced; + int total_deferred; + int map_count; + bus_size_t alignment; + bus_addr_t lowaddr; + char zoneid[8]; + char lowaddrid[20]; + struct sysctl_ctx_list sysctl_tree; + struct sysctl_oid *sysctl_tree_top; }; +static struct mtx bounce_lock; +static int total_bpages; +static int busdma_zonecount; +static STAILQ_HEAD(, bounce_zone) bounce_zone_list; + +SYSCTL_NODE(_hw, OID_AUTO, busdma, CTLFLAG_RD, 0, "Busdma parameters"); +SYSCTL_INT(_hw_busdma, OID_AUTO, total_bpages, CTLFLAG_RD, &total_bpages, 0, + "Total bounce pages"); + struct bus_dmamap { - bus_dma_tag_t dmat; - void *buf; /* unmapped buffer pointer */ - bus_size_t buflen; /* unmapped buffer length */ - bus_dmamap_callback_t *callback; - void *callback_arg; + struct bp_list bpages; + int pagesneeded; + int pagesreserved; + bus_dma_tag_t dmat; + void *buf; /* unmapped buffer pointer */ + bus_size_t buflen; /* unmapped buffer length */ + bus_dmamap_callback_t *callback; + void *callback_arg; + STAILQ_ENTRY(bus_dmamap) links; }; +static STAILQ_HEAD(, bus_dmamap) bounce_map_waitinglist; +static STAILQ_HEAD(, bus_dmamap) bounce_map_callbacklist; +static struct bus_dmamap nobounce_dmamap; + +static void init_bounce_pages(void *dummy); +static int alloc_bounce_zone(bus_dma_tag_t dmat); +static int alloc_bounce_pages(bus_dma_tag_t dmat, u_int numpages); +static int reserve_bounce_pages(bus_dma_tag_t dmat, bus_dmamap_t map, + int commit); +static bus_addr_t add_bounce_page(bus_dma_tag_t dmat, bus_dmamap_t map, + vm_offset_t vaddr, bus_size_t size); +static void free_bounce_page(bus_dma_tag_t dmat, struct bounce_page *bpage); +static __inline int run_filter(bus_dma_tag_t dmat, bus_addr_t paddr); + +/* + * Return true if a match is made. + * + * To find a match walk the chain of bus_dma_tag_t's looking for 'paddr'. + * + * If paddr is within the bounds of the dma tag then call the filter callback + * to check for a match, if there is no filter callback then assume a match. + */ +static __inline int +run_filter(bus_dma_tag_t dmat, bus_addr_t paddr) +{ + int retval; + + retval = 0; + + do { + if (((paddr > dmat->lowaddr && paddr <= dmat->highaddr) + || ((paddr & (dmat->alignment - 1)) != 0)) + && (dmat->filter == NULL + || (*dmat->filter)(dmat->filterarg, paddr) != 0)) + retval = 1; + + dmat = dmat->parent; + } while (retval == 0 && dmat != NULL); + return (retval); +} + /* * Convenience function for manipulating driver locks from busdma (during * busdma_swi, for example). Drivers that don't provide their own locks @@ -112,42 +200,53 @@ busdma_lock_mutex(void *arg, bus_dma_loc static void dflt_lock(void *arg, bus_dma_lock_op_t op) { -#ifdef INVARIANTS panic("driver error: busdma dflt_lock called"); -#else - printf("DRIVER_ERROR: busdma dflt_lock called\n"); -#endif } +#define BUS_DMA_COULD_BOUNCE BUS_DMA_BUS3 +#define BUS_DMA_MIN_ALLOC_COMP BUS_DMA_BUS4 /* * Allocate a device specific dma_tag. */ int bus_dma_tag_create(bus_dma_tag_t parent, bus_size_t alignment, - bus_size_t boundary, bus_addr_t lowaddr, bus_addr_t highaddr, - bus_dma_filter_t *filter, void *filterarg, bus_size_t maxsize, - int nsegments, bus_size_t maxsegsz, int flags, bus_dma_lock_t *lockfunc, - void *lockfuncarg, bus_dma_tag_t *dmat) + bus_size_t boundary, bus_addr_t lowaddr, + bus_addr_t highaddr, bus_dma_filter_t *filter, + void *filterarg, bus_size_t maxsize, int nsegments, + bus_size_t maxsegsz, int flags, bus_dma_lock_t *lockfunc, + void *lockfuncarg, bus_dma_tag_t *dmat) { bus_dma_tag_t newtag; int error = 0; + /* Basic sanity checking */ + if (boundary != 0 && boundary < maxsegsz) + maxsegsz = boundary; + + if (maxsegsz == 0) { + return (EINVAL); + } + /* Return a NULL tag on failure */ *dmat = NULL; - newtag = (bus_dma_tag_t)malloc(sizeof(*newtag), M_DEVBUF, M_NOWAIT); - if (newtag == NULL) + newtag = (bus_dma_tag_t)malloc(sizeof(*newtag), M_DEVBUF, + M_ZERO | M_NOWAIT); + if (newtag == NULL) { + CTR4(KTR_BUSDMA, "%s returned tag %p tag flags 0x%x error %d", + __func__, newtag, 0, error); return (ENOMEM); + } newtag->parent = parent; newtag->alignment = alignment; newtag->boundary = boundary; - newtag->lowaddr = trunc_page((vm_offset_t)lowaddr) + (PAGE_SIZE - 1); - newtag->highaddr = trunc_page((vm_offset_t)highaddr) + (PAGE_SIZE - 1); + newtag->lowaddr = trunc_page((vm_paddr_t)lowaddr) + (PAGE_SIZE - 1); + newtag->highaddr = trunc_page((vm_paddr_t)highaddr) + (PAGE_SIZE - 1); newtag->filter = filter; newtag->filterarg = filterarg; - newtag->maxsize = maxsize; - newtag->nsegments = nsegments; + newtag->maxsize = maxsize; + newtag->nsegments = nsegments; newtag->maxsegsz = maxsegsz; newtag->flags = flags; newtag->ref_count = 1; /* Count ourself */ @@ -159,61 +258,107 @@ bus_dma_tag_create(bus_dma_tag_t parent, newtag->lockfunc = dflt_lock; newtag->lockfuncarg = NULL; } + newtag->segments = NULL; - /* - * Take into account any restrictions imposed by our parent tag - */ - if (parent != NULL) { - newtag->lowaddr = min(parent->lowaddr, newtag->lowaddr); - newtag->highaddr = max(parent->highaddr, newtag->highaddr); + /* Take into account any restrictions imposed by our parent tag */ + if (parent != NULL) { + newtag->lowaddr = MIN(parent->lowaddr, newtag->lowaddr); + newtag->highaddr = MAX(parent->highaddr, newtag->highaddr); if (newtag->boundary == 0) newtag->boundary = parent->boundary; else if (parent->boundary != 0) - newtag->boundary = MIN(parent->boundary, + newtag->boundary = MIN(parent->boundary, newtag->boundary); - if (newtag->filter == NULL) { - /* - * Short circuit looking at our parent directly - * since we have encapsulated all of its information - */ - newtag->filter = parent->filter; - newtag->filterarg = parent->filterarg; - newtag->parent = parent->parent; + if (newtag->filter == NULL) { + /* + * Short circuit looking at our parent directly + * since we have encapsulated all of its information + */ + newtag->filter = parent->filter; + newtag->filterarg = parent->filterarg; + newtag->parent = parent->parent; } if (newtag->parent != NULL) atomic_add_int(&parent->ref_count, 1); } - *dmat = newtag; + if (newtag->lowaddr < ptoa((vm_paddr_t)Maxmem) + || newtag->alignment > 1) + newtag->flags |= BUS_DMA_COULD_BOUNCE; + + if (((newtag->flags & BUS_DMA_COULD_BOUNCE) != 0) && + (flags & BUS_DMA_ALLOCNOW) != 0) { + struct bounce_zone *bz; + + /* Must bounce */ + + if ((error = alloc_bounce_zone(newtag)) != 0) { + free(newtag, M_DEVBUF); + return (error); + } + bz = newtag->bounce_zone; + + if (ptoa(bz->total_bpages) < maxsize) { + int pages; + + pages = atop(maxsize) - bz->total_bpages; + + /* Add pages to our bounce pool */ + if (alloc_bounce_pages(newtag, pages) < pages) + error = ENOMEM; + } + /* Performed initial allocation */ + newtag->flags |= BUS_DMA_MIN_ALLOC_COMP; + } + + if (error != 0) { + free(newtag, M_DEVBUF); + } else { + *dmat = newtag; + } + CTR4(KTR_BUSDMA, "%s returned tag %p tag flags 0x%x error %d", + __func__, newtag, (newtag != NULL ? newtag->flags : 0), error); return (error); } int bus_dma_tag_destroy(bus_dma_tag_t dmat) { + bus_dma_tag_t dmat_copy; + int error; + + error = 0; + dmat_copy = dmat; + if (dmat != NULL) { - - if (dmat->map_count != 0) - return (EBUSY); - - while (dmat != NULL) { - bus_dma_tag_t parent; - - parent = dmat->parent; - atomic_subtract_int(&dmat->ref_count, 1); - if (dmat->ref_count == 0) { - free(dmat, M_DEVBUF); - /* - * Last reference count, so - * release our reference - * count on our parent. - */ - dmat = parent; - } else - dmat = NULL; - } - } - return (0); + + if (dmat->map_count != 0) { + error = EBUSY; + goto out; + } + + while (dmat != NULL) { + bus_dma_tag_t parent; + + parent = dmat->parent; + atomic_subtract_int(&dmat->ref_count, 1); + if (dmat->ref_count == 0) { + if (dmat->segments != NULL) + free(dmat->segments, M_DEVBUF); + free(dmat, M_DEVBUF); + /* + * Last reference count, so + * release our reference + * count on our parent. + */ + dmat = parent; + } else + dmat = NULL; + } + } +out: + CTR3(KTR_BUSDMA, "%s tag %p error %d", __func__, dmat_copy, error); + return (error); } /* @@ -223,10 +368,83 @@ bus_dma_tag_destroy(bus_dma_tag_t dmat) int bus_dmamap_create(bus_dma_tag_t dmat, int flags, bus_dmamap_t *mapp) { - *mapp = NULL; - dmat->map_count++; + int error; - return (0); + error = 0; + + if (dmat->segments == NULL) { + dmat->segments = (bus_dma_segment_t *)malloc( + sizeof(bus_dma_segment_t) * dmat->nsegments, M_DEVBUF, + M_NOWAIT); + if (dmat->segments == NULL) { + CTR3(KTR_BUSDMA, "%s: tag %p error %d", + __func__, dmat, ENOMEM); + return (ENOMEM); + } + } + + /* + * Bouncing might be required if the driver asks for an active + * exclusion region, a data alignment that is stricter than 1, and/or + * an active address boundary. + */ + if (dmat->flags & BUS_DMA_COULD_BOUNCE) { + + /* Must bounce */ + struct bounce_zone *bz; + int maxpages; + + if (dmat->bounce_zone == NULL) { + if ((error = alloc_bounce_zone(dmat)) != 0) + return (error); + } + bz = dmat->bounce_zone; + + *mapp = (bus_dmamap_t)malloc(sizeof(**mapp), M_DEVBUF, + M_NOWAIT | M_ZERO); + if (*mapp == NULL) { + CTR3(KTR_BUSDMA, "%s: tag %p error %d", + __func__, dmat, ENOMEM); + return (ENOMEM); + } + + /* Initialize the new map */ + STAILQ_INIT(&((*mapp)->bpages)); + + /* + * Attempt to add pages to our pool on a per-instance + * basis up to a sane limit. + */ + if (dmat->alignment > 1) + maxpages = MAX_BPAGES; + else + maxpages = MIN(MAX_BPAGES, Maxmem -atop(dmat->lowaddr)); + if ((dmat->flags & BUS_DMA_MIN_ALLOC_COMP) == 0 + || (bz->map_count > 0 && bz->total_bpages < maxpages)) { + int pages; + + pages = MAX(atop(dmat->maxsize), 1); + pages = MIN(maxpages - bz->total_bpages, pages); + pages = MAX(pages, 1); + if (alloc_bounce_pages(dmat, pages) < pages) + error = ENOMEM; + + if ((dmat->flags & BUS_DMA_MIN_ALLOC_COMP) == 0) { + if (error == 0) + dmat->flags |= BUS_DMA_MIN_ALLOC_COMP; + } else { + error = 0; + } + } + bz->map_count++; + } else { + *mapp = NULL; + } + if (error == 0) + dmat->map_count++; + CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d", + __func__, dmat, dmat->flags, error); + return (error); } /* @@ -236,13 +454,22 @@ bus_dmamap_create(bus_dma_tag_t dmat, in int bus_dmamap_destroy(bus_dma_tag_t dmat, bus_dmamap_t map) { - if (map != NULL) { - panic("dmamap_destroy: NULL?\n"); - } - dmat->map_count--; - return (0); + if (map != NULL && map != &nobounce_dmamap) { + if (STAILQ_FIRST(&map->bpages) != NULL) { + CTR3(KTR_BUSDMA, "%s: tag %p error %d", + __func__, dmat, EBUSY); + return (EBUSY); + } + if (dmat->bounce_zone) + dmat->bounce_zone->map_count--; + free(map, M_DEVBUF); + } + dmat->map_count--; + CTR2(KTR_BUSDMA, "%s: tag %p error 0", __func__, dmat); + return (0); } + /* * Allocate a piece of memory that can be efficiently mapped into * bus device space based on the constraints lited in the dma tag. @@ -250,7 +477,7 @@ bus_dmamap_destroy(bus_dma_tag_t dmat, b */ int bus_dmamem_alloc(bus_dma_tag_t dmat, void** vaddr, int flags, - bus_dmamap_t *mapp) + bus_dmamap_t *mapp) { int mflags; @@ -258,56 +485,87 @@ bus_dmamem_alloc(bus_dma_tag_t dmat, voi mflags = M_NOWAIT; else mflags = M_WAITOK; + + /* If we succeed, no mapping/bouncing will be required */ + *mapp = NULL; + + if (dmat->segments == NULL) { + dmat->segments = (bus_dma_segment_t *)malloc( + sizeof(bus_dma_segment_t) * dmat->nsegments, M_DEVBUF, + mflags); + if (dmat->segments == NULL) { + CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d", + __func__, dmat, dmat->flags, ENOMEM); + return (ENOMEM); + } + } if (flags & BUS_DMA_ZERO) mflags |= M_ZERO; - *mapp = NULL; - /* * XXX: * (dmat->alignment < dmat->maxsize) is just a quick hack; the exact * alignment guarantees of malloc need to be nailed down, and the * code below should be rewritten to take that into account. * - * In the meantime, we'll return an error if malloc gets it wrong. + * In the meantime, we'll warn the user if malloc gets it wrong. */ - if (dmat->maxsize <= PAGE_SIZE && - dmat->alignment < dmat->maxsize) { + if ((dmat->maxsize <= PAGE_SIZE) && + (dmat->alignment < dmat->maxsize) && + dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem)) { *vaddr = malloc(dmat->maxsize, M_DEVBUF, mflags); - } else { - /* - * XXX Use Contigmalloc until it is merged into this facility - * and handles multi-seg allocations. Nobody is doing - * multi-seg allocations yet though. - */ - *vaddr = contigmalloc(dmat->maxsize, M_DEVBUF, mflags, - 0ul, dmat->lowaddr, dmat->alignment? dmat->alignment : 1ul, - dmat->boundary); - } - - if (*vaddr == NULL) - return (ENOMEM); - - if ((uintptr_t)*vaddr % dmat->alignment) - printf("XXX: %s: alignment not respected!\n", __func__); - - return (0); + } else { + /* + * XXX Use Contigmalloc until it is merged into this facility + * and handles multi-seg allocations. Nobody is doing + * multi-seg allocations yet though. + * XXX Certain AGP hardware does. + */ + *vaddr = contigmalloc(dmat->maxsize, M_DEVBUF, mflags, + 0ul, dmat->lowaddr, dmat->alignment? dmat->alignment : 1ul, + dmat->boundary); + } + if (*vaddr == NULL) { + CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d", + __func__, dmat, dmat->flags, ENOMEM); + return (ENOMEM); + } else if ((uintptr_t)*vaddr & (dmat->alignment - 1)) { + printf("bus_dmamem_alloc failed to align memory properly.\n"); + } +#ifdef NOTYET + if (flags & BUS_DMA_NOCACHE) + pmap_change_attr((vm_offset_t)*vaddr, dmat->maxsize, + PAT_UNCACHEABLE); +#endif + CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d", + __func__, dmat, dmat->flags, 0); + return (0); } /* - * Free a piece of memory and it's allocated dmamap, that was allocated + * Free a piece of memory and it's allociated dmamap, that was allocated * via bus_dmamem_alloc. Make the same choice for free/contigfree. */ void bus_dmamem_free(bus_dma_tag_t dmat, void *vaddr, bus_dmamap_t map) { - if (map != NULL) - panic("bus_dmamem_free: Invalid map freed\n"); - if (dmat->maxsize <= PAGE_SIZE && - dmat->alignment < dmat->maxsize) + /* + * dmamem does not need to be bounced, so the map should be + * NULL + */ + if (map != NULL) + panic("bus_dmamem_free: Invalid map freed\n"); +#ifdef NOTYET + pmap_change_attr((vm_offset_t)vaddr, dmat->maxsize, PAT_WRITE_BACK); +#endif + if ((dmat->maxsize <= PAGE_SIZE) && + (dmat->alignment < dmat->maxsize) && + dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem)) free(vaddr, M_DEVBUF); - else + else { contigfree(vaddr, dmat->maxsize, M_DEVBUF); + } + CTR3(KTR_BUSDMA, "%s: tag %p flags 0x%x", __func__, dmat, dmat->flags); } /* @@ -316,26 +574,89 @@ bus_dmamem_free(bus_dma_tag_t dmat, void * the starting segment on entrance, and the ending segment on exit. * first indicates if this is the first invocation of this function. */ -static int -bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dma_segment_t segs[], - void *buf, bus_size_t buflen, struct thread *td, int flags, - vm_offset_t *lastaddrp, int *segp, int first) +static __inline int +_bus_dmamap_load_buffer(bus_dma_tag_t dmat, + bus_dmamap_t map, + void *buf, bus_size_t buflen, + pmap_t pmap, + int flags, + bus_addr_t *lastaddrp, + bus_dma_segment_t *segs, + int *segp, + int first) { bus_size_t sgsize; bus_addr_t curaddr, lastaddr, baddr, bmask; - vm_offset_t vaddr = (vm_offset_t)buf; + vm_offset_t vaddr; + bus_addr_t paddr; int seg; - pmap_t pmap; - if (td != NULL) - pmap = vmspace_pmap(td->td_proc->p_vmspace); - else - pmap = NULL; + if (map == NULL) + map = &nobounce_dmamap; + + if ((map != &nobounce_dmamap && map->pagesneeded == 0) + && ((dmat->flags & BUS_DMA_COULD_BOUNCE) != 0)) { + vm_offset_t vendaddr; + + CTR4(KTR_BUSDMA, "lowaddr= %d Maxmem= %d, boundary= %d, " + "alignment= %d", dmat->lowaddr, ptoa((vm_paddr_t)Maxmem), + dmat->boundary, dmat->alignment); + CTR3(KTR_BUSDMA, "map= %p, nobouncemap= %p, pagesneeded= %d", + map, &nobounce_dmamap, map->pagesneeded); + /* + * Count the number of bounce pages + * needed in order to complete this transfer + */ + vaddr = (vm_offset_t)buf; + vendaddr = (vm_offset_t)buf + buflen; + + while (vaddr < vendaddr) { + bus_size_t sg_len; + sg_len = PAGE_SIZE - ((vm_offset_t)vaddr & PAGE_MASK); + if (pmap) + paddr = pmap_extract(pmap, vaddr); + else + paddr = pmap_kextract(vaddr); + if (run_filter(dmat, paddr) != 0) { + sg_len = roundup2(sg_len, dmat->alignment); + map->pagesneeded++; + } + vaddr += sg_len; + } + CTR1(KTR_BUSDMA, "pagesneeded= %d\n", map->pagesneeded); + } + + /* Reserve Necessary Bounce Pages */ + if (map->pagesneeded != 0) { + mtx_lock(&bounce_lock); + if (flags & BUS_DMA_NOWAIT) { + if (reserve_bounce_pages(dmat, map, 0) != 0) { + mtx_unlock(&bounce_lock); + return (ENOMEM); + } + } else { + if (reserve_bounce_pages(dmat, map, 1) != 0) { + /* Queue us for resources */ + map->dmat = dmat; + map->buf = buf; + map->buflen = buflen; + STAILQ_INSERT_TAIL(&bounce_map_waitinglist, + map, links); + mtx_unlock(&bounce_lock); + return (EINPROGRESS); + } + } + mtx_unlock(&bounce_lock); + } + + vaddr = (vm_offset_t)buf; lastaddr = *lastaddrp; bmask = ~(dmat->boundary - 1); for (seg = *segp; buflen > 0 ; ) { + bus_size_t max_sgsize; + /* * Get the physical address for this segment. */ @@ -347,11 +668,15 @@ bus_dmamap_load_buffer(bus_dma_tag_t dma /* * Compute the segment size, and adjust counts. */ - sgsize = PAGE_SIZE - ((u_long)curaddr & PAGE_MASK); - if (sgsize > dmat->maxsegsz) - sgsize = dmat->maxsegsz; - if (buflen < sgsize) - sgsize = buflen; + max_sgsize = MIN(buflen, dmat->maxsegsz); + sgsize = PAGE_SIZE - ((vm_offset_t)curaddr & PAGE_MASK); + if (map->pagesneeded != 0 && run_filter(dmat, curaddr)) { + sgsize = roundup2(sgsize, dmat->alignment); + sgsize = MIN(sgsize, max_sgsize); + curaddr = add_bounce_page(dmat, map, vaddr, sgsize); + } else { + sgsize = MIN(sgsize, max_sgsize); + } /* * Make sure we don't cross any boundaries. @@ -364,7 +689,7 @@ bus_dmamap_load_buffer(bus_dma_tag_t dma /* * Insert chunk into a segment, coalescing with - * the previous segment if possible. + * previous segment if possible. */ if (first) { segs[seg].ds_addr = curaddr; @@ -403,59 +728,71 @@ bus_dmamap_load_buffer(bus_dma_tag_t dma */ int bus_dmamap_load(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf, - bus_size_t buflen, bus_dmamap_callback_t *callback, - void *callback_arg, int flags) + bus_size_t buflen, bus_dmamap_callback_t *callback, + void *callback_arg, int flags) { -#ifdef __CC_SUPPORTS_DYNAMIC_ARRAY_INIT - bus_dma_segment_t dm_segments[dmat->nsegments]; -#else - bus_dma_segment_t dm_segments[BUS_DMAMAP_NSEGS]; -#endif - vm_offset_t lastaddr; - int error, nsegs; + bus_addr_t lastaddr = 0; + int error, nsegs = 0; - if (map != NULL) - panic("bus_dmamap_load: Invalid map\n"); + if (map != NULL) { + flags |= BUS_DMA_WAITOK; + map->callback = callback; + map->callback_arg = callback_arg; + } - lastaddr = (vm_offset_t)0; - nsegs = 0; - error = bus_dmamap_load_buffer(dmat, dm_segments, buf, buflen, - NULL, flags, &lastaddr, &nsegs, 1); + error = _bus_dmamap_load_buffer(dmat, map, buf, buflen, NULL, flags, + &lastaddr, dmat->segments, &nsegs, 1); - if (error == 0) - (*callback)(callback_arg, dm_segments, nsegs + 1, 0); + CTR5(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d nsegs %d", + __func__, dmat, dmat->flags, error, nsegs + 1); + + if (error == EINPROGRESS) { + return (error); + } + + if (error) + (*callback)(callback_arg, dmat->segments, 0, error); else - (*callback)(callback_arg, NULL, 0, error); + (*callback)(callback_arg, dmat->segments, nsegs + 1, 0); + + /* + * Return ENOMEM to the caller so that it can pass it up the stack. + * This error only happens when NOWAIT is set, so deferal is disabled. + */ + if (error == ENOMEM) + return (error); return (0); } + /* - * Like bus_dmamap_load(), but for mbufs. + * Like _bus_dmamap_load(), but for mbufs. */ int -bus_dmamap_load_mbuf(bus_dma_tag_t dmat, bus_dmamap_t map, struct mbuf *m0, - bus_dmamap_callback2_t *callback, void *callback_arg, int flags) +bus_dmamap_load_mbuf(bus_dma_tag_t dmat, bus_dmamap_t map, + struct mbuf *m0, + bus_dmamap_callback2_t *callback, void *callback_arg, + int flags) { -#ifdef __CC_SUPPORTS_DYNAMIC_ARRAY_INIT - bus_dma_segment_t dm_segments[dmat->nsegments]; -#else - bus_dma_segment_t dm_segments[BUS_DMAMAP_NSEGS]; -#endif - int nsegs = 0, error = 0; + int nsegs, error; M_ASSERTPKTHDR(m0); + flags |= BUS_DMA_NOWAIT; + nsegs = 0; + error = 0; if (m0->m_pkthdr.len <= dmat->maxsize) { int first = 1; - vm_offset_t lastaddr = 0; + bus_addr_t lastaddr = 0; struct mbuf *m; for (m = m0; m != NULL && error == 0; m = m->m_next) { if (m->m_len > 0) { - error = bus_dmamap_load_buffer(dmat, - dm_segments, m->m_data, m->m_len, NULL, - flags, &lastaddr, &nsegs, first); + error = _bus_dmamap_load_buffer(dmat, map, + m->m_data, m->m_len, + NULL, flags, &lastaddr, + dmat->segments, &nsegs, first); first = 0; } } @@ -464,90 +801,96 @@ bus_dmamap_load_mbuf(bus_dma_tag_t dmat, } if (error) { - /* - * force "no valid mappings" on error in callback. - */ - (*callback)(callback_arg, dm_segments, 0, 0, error); + /* force "no valid mappings" in callback */ + (*callback)(callback_arg, dmat->segments, 0, 0, error); } else { - (*callback)(callback_arg, dm_segments, nsegs+1, - m0->m_pkthdr.len, error); + (*callback)(callback_arg, dmat->segments, + nsegs+1, m0->m_pkthdr.len, error); } + CTR5(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d nsegs %d", + __func__, dmat, dmat->flags, error, nsegs + 1); return (error); } int -bus_dmamap_load_mbuf_sg(bus_dma_tag_t dmat, bus_dmamap_t map, struct mbuf *m0, - bus_dma_segment_t *segs, int *nsegs, int flags) +bus_dmamap_load_mbuf_sg(bus_dma_tag_t dmat, bus_dmamap_t map, + struct mbuf *m0, bus_dma_segment_t *segs, int *nsegs, + int flags) { - int error = 0; + int error; M_ASSERTPKTHDR(m0); + flags |= BUS_DMA_NOWAIT; *nsegs = 0; - + error = 0; if (m0->m_pkthdr.len <= dmat->maxsize) { int first = 1; - vm_offset_t lastaddr = 0; + bus_addr_t lastaddr = 0; struct mbuf *m; for (m = m0; m != NULL && error == 0; m = m->m_next) { if (m->m_len > 0) { - error = bus_dmamap_load_buffer(dmat, - segs, m->m_data, m->m_len, NULL, - flags, &lastaddr, nsegs, first); + error = _bus_dmamap_load_buffer(dmat, map, + m->m_data, m->m_len, + NULL, flags, &lastaddr, + segs, nsegs, first); first = 0; } } - ++*nsegs; } else { error = EINVAL; } + /* XXX FIXME: Having to increment nsegs is really annoying */ + ++*nsegs; + CTR5(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d nsegs %d", + __func__, dmat, dmat->flags, error, *nsegs); return (error); } /* - * Like bus_dmamap_load(), but for uios. + * Like _bus_dmamap_load(), but for uios. */ int -bus_dmamap_load_uio(bus_dma_tag_t dmat, bus_dmamap_t map, struct uio *uio, - bus_dmamap_callback2_t *callback, void *callback_arg, int flags) +bus_dmamap_load_uio(bus_dma_tag_t dmat, bus_dmamap_t map, + struct uio *uio, + bus_dmamap_callback2_t *callback, void *callback_arg, + int flags) { - vm_offset_t lastaddr; -#ifdef __CC_SUPPORTS_DYNAMIC_ARRAY_INIT - bus_dma_segment_t dm_segments[dmat->nsegments]; -#else - bus_dma_segment_t dm_segments[BUS_DMAMAP_NSEGS]; -#endif - int nsegs, i, error, first; + bus_addr_t lastaddr = 0; + int nsegs, error, first, i; bus_size_t resid; struct iovec *iov; - struct thread *td = NULL; + pmap_t pmap; + flags |= BUS_DMA_NOWAIT; resid = uio->uio_resid; iov = uio->uio_iov; if (uio->uio_segflg == UIO_USERSPACE) { - td = uio->uio_td; - KASSERT(td != NULL, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Apr 6 15:02:42 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C868D1065670; Tue, 6 Apr 2010 15:02:42 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B22C48FC18; Tue, 6 Apr 2010 15:02:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o36F2gfY098534; Tue, 6 Apr 2010 15:02:42 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o36F2gqs098516; Tue, 6 Apr 2010 15:02:42 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201004061502.o36F2gqs098516@svn.freebsd.org> From: Nathan Whitehorn Date: Tue, 6 Apr 2010 15:02:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206273 - in projects/ppc64: . bin/cp bin/ls bin/pax bin/rcp bin/sh bin/test cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/lib/libzfs/comm... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Apr 2010 15:02:42 -0000 Author: nwhitehorn Date: Tue Apr 6 15:02:41 2010 New Revision: 206273 URL: http://svn.freebsd.org/changeset/base/206273 Log: IFC @ 206272. While here, readd t1_reneg.c which svn merge sent into limbo at some point in the past (reported by Andreas Tobler). Added: projects/ppc64/crypto/openssl/ssl/t1_reneg.c projects/ppc64/lib/libpmc/pmc.corei7.3 - copied unchanged from r206272, head/lib/libpmc/pmc.corei7.3 projects/ppc64/lib/libpmc/pmc.corei7uc.3 - copied unchanged from r206272, head/lib/libpmc/pmc.corei7uc.3 projects/ppc64/lib/libpmc/pmc.ucf.3 - copied unchanged from r206272, head/lib/libpmc/pmc.ucf.3 projects/ppc64/lib/libpmc/pmc.westmere.3 - copied unchanged from r206272, head/lib/libpmc/pmc.westmere.3 projects/ppc64/lib/libpmc/pmc.westmereuc.3 - copied unchanged from r206272, head/lib/libpmc/pmc.westmereuc.3 projects/ppc64/share/examples/indent/ - copied from r206272, head/share/examples/indent/ projects/ppc64/sys/dev/e1000/if_lem.c - copied unchanged from r206272, head/sys/dev/e1000/if_lem.c projects/ppc64/sys/dev/e1000/if_lem.h - copied unchanged from r206272, head/sys/dev/e1000/if_lem.h projects/ppc64/sys/dev/hwpmc/hwpmc_uncore.c - copied unchanged from r206272, head/sys/dev/hwpmc/hwpmc_uncore.c projects/ppc64/sys/dev/hwpmc/hwpmc_uncore.h - copied unchanged from r206272, head/sys/dev/hwpmc/hwpmc_uncore.h projects/ppc64/sys/modules/alq/ - copied from r206272, head/sys/modules/alq/ projects/ppc64/tools/regression/bin/sh/expansion/arith4.0 - copied unchanged from r206272, head/tools/regression/bin/sh/expansion/arith4.0 projects/ppc64/tools/regression/bin/sh/expansion/arith5.0 - copied unchanged from r206272, head/tools/regression/bin/sh/expansion/arith5.0 projects/ppc64/tools/regression/bin/sh/expansion/plus-minus2.0 - copied unchanged from r206272, head/tools/regression/bin/sh/expansion/plus-minus2.0 projects/ppc64/tools/regression/bin/sh/expansion/tilde1.0 - copied unchanged from r206272, head/tools/regression/bin/sh/expansion/tilde1.0 projects/ppc64/tools/regression/bin/sh/expansion/tilde2.0 - copied unchanged from r206272, head/tools/regression/bin/sh/expansion/tilde2.0 projects/ppc64/tools/regression/bin/sh/expansion/trim1.0 - copied unchanged from r206272, head/tools/regression/bin/sh/expansion/trim1.0 projects/ppc64/tools/regression/bin/sh/expansion/trim2.0 - copied unchanged from r206272, head/tools/regression/bin/sh/expansion/trim2.0 projects/ppc64/tools/regression/bin/sh/parser/heredoc2.0 - copied unchanged from r206272, head/tools/regression/bin/sh/parser/heredoc2.0 projects/ppc64/usr.bin/calendar/dates.c - copied unchanged from r206272, head/usr.bin/calendar/dates.c projects/ppc64/usr.bin/calendar/events.c - copied unchanged from r206272, head/usr.bin/calendar/events.c projects/ppc64/usr.bin/calendar/locale.c - copied unchanged from r206272, head/usr.bin/calendar/locale.c projects/ppc64/usr.bin/calendar/parsedata.c - copied unchanged from r206272, head/usr.bin/calendar/parsedata.c projects/ppc64/usr.bin/calendar/pom.c - copied unchanged from r206272, head/usr.bin/calendar/pom.c projects/ppc64/usr.bin/calendar/sunpos.c - copied unchanged from r206272, head/usr.bin/calendar/sunpos.c projects/ppc64/usr.sbin/services_mkdb/ - copied from r206272, head/usr.sbin/services_mkdb/ Deleted: projects/ppc64/bin/pax/cpio.1 projects/ppc64/bin/pax/tar.1 projects/ppc64/contrib/cpio/ projects/ppc64/gnu/usr.bin/cpio/ projects/ppc64/sys/ia64/include/nexusvar.h projects/ppc64/tools/build/options/WITH_GNU_CPIO Modified: projects/ppc64/MAINTAINERS projects/ppc64/ObsoleteFiles.inc projects/ppc64/UPDATING projects/ppc64/bin/cp/utils.c projects/ppc64/bin/ls/cmp.c projects/ppc64/bin/pax/Makefile projects/ppc64/bin/pax/getoldopt.c projects/ppc64/bin/rcp/rcp.c projects/ppc64/bin/sh/expand.c projects/ppc64/bin/sh/mksyntax.c projects/ppc64/bin/sh/options.c projects/ppc64/bin/sh/parser.c projects/ppc64/bin/sh/sh.1 projects/ppc64/bin/test/test.c projects/ppc64/cddl/contrib/opensolaris/cmd/zfs/zfs.8 projects/ppc64/cddl/contrib/opensolaris/cmd/zpool/zpool.8 projects/ppc64/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c projects/ppc64/contrib/bsnmp/gensnmpdef/gensnmpdef.c projects/ppc64/contrib/bsnmp/snmpd/config.c projects/ppc64/contrib/top/utils.h projects/ppc64/contrib/tzdata/asia projects/ppc64/contrib/tzdata/europe projects/ppc64/contrib/tzdata/zone.tab projects/ppc64/crypto/openssl/CHANGES projects/ppc64/crypto/openssl/FAQ projects/ppc64/crypto/openssl/Makefile projects/ppc64/crypto/openssl/NEWS projects/ppc64/crypto/openssl/README projects/ppc64/crypto/openssl/apps/req.c projects/ppc64/crypto/openssl/apps/speed.c projects/ppc64/crypto/openssl/config projects/ppc64/crypto/openssl/crypto/asn1/a_object.c projects/ppc64/crypto/openssl/crypto/bio/bss_file.c projects/ppc64/crypto/openssl/crypto/bn/asm/ppc.pl projects/ppc64/crypto/openssl/crypto/bn/asm/x86_64-gcc.c projects/ppc64/crypto/openssl/crypto/bn/bn_div.c projects/ppc64/crypto/openssl/crypto/engine/eng_all.c projects/ppc64/crypto/openssl/crypto/engine/eng_cryptodev.c projects/ppc64/crypto/openssl/crypto/evp/digest.c projects/ppc64/crypto/openssl/crypto/evp/evp_locl.h projects/ppc64/crypto/openssl/crypto/evp/names.c projects/ppc64/crypto/openssl/crypto/md32_common.h projects/ppc64/crypto/openssl/crypto/ocsp/ocsp_prn.c projects/ppc64/crypto/openssl/crypto/opensslv.h projects/ppc64/crypto/openssl/crypto/rand/rand_win.c projects/ppc64/crypto/openssl/engines/e_capi.c projects/ppc64/crypto/openssl/engines/e_chil.c projects/ppc64/crypto/openssl/fips/Makefile projects/ppc64/crypto/openssl/openssl.spec projects/ppc64/crypto/openssl/ssl/kssl.c projects/ppc64/crypto/openssl/ssl/s3_pkt.c projects/ppc64/etc/inetd.conf projects/ppc64/etc/rc.subr projects/ppc64/games/fortune/Notes projects/ppc64/games/fortune/datfiles/fortunes projects/ppc64/games/fortune/datfiles/fortunes-o.real projects/ppc64/games/fortune/datfiles/fortunes.sp.ok projects/ppc64/games/fortune/datfiles/limerick projects/ppc64/games/fortune/datfiles/startrek projects/ppc64/games/fortune/datfiles/zippy projects/ppc64/gnu/usr.bin/Makefile projects/ppc64/gnu/usr.bin/diff/context.c.diff projects/ppc64/gnu/usr.bin/diff/diff.c.diff projects/ppc64/gnu/usr.bin/gdb/Makefile projects/ppc64/gnu/usr.bin/gdb/Makefile.inc projects/ppc64/gnu/usr.bin/gdb/kgdb/trgt_ia64.c projects/ppc64/include/inttypes.h projects/ppc64/include/netdb.h projects/ppc64/include/nsswitch.h projects/ppc64/lib/libc/db/hash/hash.c projects/ppc64/lib/libc/db/hash/hash.h projects/ppc64/lib/libc/db/man/hash.3 projects/ppc64/lib/libc/gen/__getosreldate.c projects/ppc64/lib/libc/gen/_spinlock_stub.c projects/ppc64/lib/libc/gen/_thread_init.c projects/ppc64/lib/libc/net/getservent.c projects/ppc64/lib/libc/net/nsdispatch.3 projects/ppc64/lib/libc/posix1e/acl_to_text_nfs4.c projects/ppc64/lib/libc/stdio/printf.3 projects/ppc64/lib/libc/stdio/vasprintf.c projects/ppc64/lib/libc/sys/stat.2 projects/ppc64/lib/libpmc/Makefile projects/ppc64/lib/libpmc/libpmc.c projects/ppc64/lib/libstand/Makefile projects/ppc64/lib/libstand/assert.c projects/ppc64/lib/libusbhid/data.c projects/ppc64/lib/libusbhid/descr.c projects/ppc64/lib/libusbhid/parse.c projects/ppc64/lib/libusbhid/usage.c projects/ppc64/lib/libusbhid/usbhid.h projects/ppc64/lib/libusbhid/usbvar.h projects/ppc64/lib/libz/ChangeLog projects/ppc64/lib/libz/README projects/ppc64/lib/libz/crc32.c projects/ppc64/lib/libz/deflate.c projects/ppc64/lib/libz/gzguts.h (contents, props changed) projects/ppc64/lib/libz/gzlib.c projects/ppc64/lib/libz/gzread.c projects/ppc64/lib/libz/inftrees.c projects/ppc64/lib/libz/minigzip.c projects/ppc64/lib/libz/zconf.h projects/ppc64/lib/libz/zlib.3 projects/ppc64/lib/libz/zlib.h projects/ppc64/lib/libz/zutil.c projects/ppc64/lib/libz/zutil.h projects/ppc64/libexec/fingerd/fingerd.8 projects/ppc64/libexec/fingerd/fingerd.c projects/ppc64/libexec/ftpd/popen.c projects/ppc64/sbin/geom/class/multipath/geom_multipath.c projects/ppc64/sbin/hastd/primary.c projects/ppc64/sbin/ipfw/ipfw2.c projects/ppc64/sbin/setkey/setkey.8 projects/ppc64/secure/lib/libcrypto/Makefile.inc projects/ppc64/secure/lib/libcrypto/man/ASN1_OBJECT_new.3 projects/ppc64/secure/lib/libcrypto/man/ASN1_STRING_length.3 projects/ppc64/secure/lib/libcrypto/man/ASN1_STRING_new.3 projects/ppc64/secure/lib/libcrypto/man/ASN1_STRING_print_ex.3 projects/ppc64/secure/lib/libcrypto/man/ASN1_generate_nconf.3 projects/ppc64/secure/lib/libcrypto/man/BIO_ctrl.3 projects/ppc64/secure/lib/libcrypto/man/BIO_f_base64.3 projects/ppc64/secure/lib/libcrypto/man/BIO_f_buffer.3 projects/ppc64/secure/lib/libcrypto/man/BIO_f_cipher.3 projects/ppc64/secure/lib/libcrypto/man/BIO_f_md.3 projects/ppc64/secure/lib/libcrypto/man/BIO_f_null.3 projects/ppc64/secure/lib/libcrypto/man/BIO_f_ssl.3 projects/ppc64/secure/lib/libcrypto/man/BIO_find_type.3 projects/ppc64/secure/lib/libcrypto/man/BIO_new.3 projects/ppc64/secure/lib/libcrypto/man/BIO_push.3 projects/ppc64/secure/lib/libcrypto/man/BIO_read.3 projects/ppc64/secure/lib/libcrypto/man/BIO_s_accept.3 projects/ppc64/secure/lib/libcrypto/man/BIO_s_bio.3 projects/ppc64/secure/lib/libcrypto/man/BIO_s_connect.3 projects/ppc64/secure/lib/libcrypto/man/BIO_s_fd.3 projects/ppc64/secure/lib/libcrypto/man/BIO_s_file.3 projects/ppc64/secure/lib/libcrypto/man/BIO_s_mem.3 projects/ppc64/secure/lib/libcrypto/man/BIO_s_null.3 projects/ppc64/secure/lib/libcrypto/man/BIO_s_socket.3 projects/ppc64/secure/lib/libcrypto/man/BIO_set_callback.3 projects/ppc64/secure/lib/libcrypto/man/BIO_should_retry.3 projects/ppc64/secure/lib/libcrypto/man/BN_BLINDING_new.3 projects/ppc64/secure/lib/libcrypto/man/BN_CTX_new.3 projects/ppc64/secure/lib/libcrypto/man/BN_CTX_start.3 projects/ppc64/secure/lib/libcrypto/man/BN_add.3 projects/ppc64/secure/lib/libcrypto/man/BN_add_word.3 projects/ppc64/secure/lib/libcrypto/man/BN_bn2bin.3 projects/ppc64/secure/lib/libcrypto/man/BN_cmp.3 projects/ppc64/secure/lib/libcrypto/man/BN_copy.3 projects/ppc64/secure/lib/libcrypto/man/BN_generate_prime.3 projects/ppc64/secure/lib/libcrypto/man/BN_mod_inverse.3 projects/ppc64/secure/lib/libcrypto/man/BN_mod_mul_montgomery.3 projects/ppc64/secure/lib/libcrypto/man/BN_mod_mul_reciprocal.3 projects/ppc64/secure/lib/libcrypto/man/BN_new.3 projects/ppc64/secure/lib/libcrypto/man/BN_num_bytes.3 projects/ppc64/secure/lib/libcrypto/man/BN_rand.3 projects/ppc64/secure/lib/libcrypto/man/BN_set_bit.3 projects/ppc64/secure/lib/libcrypto/man/BN_swap.3 projects/ppc64/secure/lib/libcrypto/man/BN_zero.3 projects/ppc64/secure/lib/libcrypto/man/CONF_modules_free.3 projects/ppc64/secure/lib/libcrypto/man/CONF_modules_load_file.3 projects/ppc64/secure/lib/libcrypto/man/CRYPTO_set_ex_data.3 projects/ppc64/secure/lib/libcrypto/man/DH_generate_key.3 projects/ppc64/secure/lib/libcrypto/man/DH_generate_parameters.3 projects/ppc64/secure/lib/libcrypto/man/DH_get_ex_new_index.3 projects/ppc64/secure/lib/libcrypto/man/DH_new.3 projects/ppc64/secure/lib/libcrypto/man/DH_set_method.3 projects/ppc64/secure/lib/libcrypto/man/DH_size.3 projects/ppc64/secure/lib/libcrypto/man/DSA_SIG_new.3 projects/ppc64/secure/lib/libcrypto/man/DSA_do_sign.3 projects/ppc64/secure/lib/libcrypto/man/DSA_dup_DH.3 projects/ppc64/secure/lib/libcrypto/man/DSA_generate_key.3 projects/ppc64/secure/lib/libcrypto/man/DSA_generate_parameters.3 projects/ppc64/secure/lib/libcrypto/man/DSA_get_ex_new_index.3 projects/ppc64/secure/lib/libcrypto/man/DSA_new.3 projects/ppc64/secure/lib/libcrypto/man/DSA_set_method.3 projects/ppc64/secure/lib/libcrypto/man/DSA_sign.3 projects/ppc64/secure/lib/libcrypto/man/DSA_size.3 projects/ppc64/secure/lib/libcrypto/man/ERR_GET_LIB.3 projects/ppc64/secure/lib/libcrypto/man/ERR_clear_error.3 projects/ppc64/secure/lib/libcrypto/man/ERR_error_string.3 projects/ppc64/secure/lib/libcrypto/man/ERR_get_error.3 projects/ppc64/secure/lib/libcrypto/man/ERR_load_crypto_strings.3 projects/ppc64/secure/lib/libcrypto/man/ERR_load_strings.3 projects/ppc64/secure/lib/libcrypto/man/ERR_print_errors.3 projects/ppc64/secure/lib/libcrypto/man/ERR_put_error.3 projects/ppc64/secure/lib/libcrypto/man/ERR_remove_state.3 projects/ppc64/secure/lib/libcrypto/man/ERR_set_mark.3 projects/ppc64/secure/lib/libcrypto/man/EVP_BytesToKey.3 projects/ppc64/secure/lib/libcrypto/man/EVP_DigestInit.3 projects/ppc64/secure/lib/libcrypto/man/EVP_EncryptInit.3 projects/ppc64/secure/lib/libcrypto/man/EVP_OpenInit.3 projects/ppc64/secure/lib/libcrypto/man/EVP_PKEY_new.3 projects/ppc64/secure/lib/libcrypto/man/EVP_PKEY_set1_RSA.3 projects/ppc64/secure/lib/libcrypto/man/EVP_SealInit.3 projects/ppc64/secure/lib/libcrypto/man/EVP_SignInit.3 projects/ppc64/secure/lib/libcrypto/man/EVP_VerifyInit.3 projects/ppc64/secure/lib/libcrypto/man/OBJ_nid2obj.3 projects/ppc64/secure/lib/libcrypto/man/OPENSSL_Applink.3 projects/ppc64/secure/lib/libcrypto/man/OPENSSL_VERSION_NUMBER.3 projects/ppc64/secure/lib/libcrypto/man/OPENSSL_config.3 projects/ppc64/secure/lib/libcrypto/man/OPENSSL_ia32cap.3 projects/ppc64/secure/lib/libcrypto/man/OPENSSL_load_builtin_modules.3 projects/ppc64/secure/lib/libcrypto/man/OpenSSL_add_all_algorithms.3 projects/ppc64/secure/lib/libcrypto/man/PKCS12_create.3 projects/ppc64/secure/lib/libcrypto/man/PKCS12_parse.3 projects/ppc64/secure/lib/libcrypto/man/PKCS7_decrypt.3 projects/ppc64/secure/lib/libcrypto/man/PKCS7_encrypt.3 projects/ppc64/secure/lib/libcrypto/man/PKCS7_sign.3 projects/ppc64/secure/lib/libcrypto/man/PKCS7_verify.3 projects/ppc64/secure/lib/libcrypto/man/RAND_add.3 projects/ppc64/secure/lib/libcrypto/man/RAND_bytes.3 projects/ppc64/secure/lib/libcrypto/man/RAND_cleanup.3 projects/ppc64/secure/lib/libcrypto/man/RAND_egd.3 projects/ppc64/secure/lib/libcrypto/man/RAND_load_file.3 projects/ppc64/secure/lib/libcrypto/man/RAND_set_rand_method.3 projects/ppc64/secure/lib/libcrypto/man/RSA_blinding_on.3 projects/ppc64/secure/lib/libcrypto/man/RSA_check_key.3 projects/ppc64/secure/lib/libcrypto/man/RSA_generate_key.3 projects/ppc64/secure/lib/libcrypto/man/RSA_get_ex_new_index.3 projects/ppc64/secure/lib/libcrypto/man/RSA_new.3 projects/ppc64/secure/lib/libcrypto/man/RSA_padding_add_PKCS1_type_1.3 projects/ppc64/secure/lib/libcrypto/man/RSA_print.3 projects/ppc64/secure/lib/libcrypto/man/RSA_private_encrypt.3 projects/ppc64/secure/lib/libcrypto/man/RSA_public_encrypt.3 projects/ppc64/secure/lib/libcrypto/man/RSA_set_method.3 projects/ppc64/secure/lib/libcrypto/man/RSA_sign.3 projects/ppc64/secure/lib/libcrypto/man/RSA_sign_ASN1_OCTET_STRING.3 projects/ppc64/secure/lib/libcrypto/man/RSA_size.3 projects/ppc64/secure/lib/libcrypto/man/SMIME_read_PKCS7.3 projects/ppc64/secure/lib/libcrypto/man/SMIME_write_PKCS7.3 projects/ppc64/secure/lib/libcrypto/man/X509_NAME_ENTRY_get_object.3 projects/ppc64/secure/lib/libcrypto/man/X509_NAME_add_entry_by_txt.3 projects/ppc64/secure/lib/libcrypto/man/X509_NAME_get_index_by_NID.3 projects/ppc64/secure/lib/libcrypto/man/X509_NAME_print_ex.3 projects/ppc64/secure/lib/libcrypto/man/X509_new.3 projects/ppc64/secure/lib/libcrypto/man/bio.3 projects/ppc64/secure/lib/libcrypto/man/blowfish.3 projects/ppc64/secure/lib/libcrypto/man/bn.3 projects/ppc64/secure/lib/libcrypto/man/bn_internal.3 projects/ppc64/secure/lib/libcrypto/man/buffer.3 projects/ppc64/secure/lib/libcrypto/man/crypto.3 projects/ppc64/secure/lib/libcrypto/man/d2i_ASN1_OBJECT.3 projects/ppc64/secure/lib/libcrypto/man/d2i_DHparams.3 projects/ppc64/secure/lib/libcrypto/man/d2i_DSAPublicKey.3 projects/ppc64/secure/lib/libcrypto/man/d2i_PKCS8PrivateKey.3 projects/ppc64/secure/lib/libcrypto/man/d2i_RSAPublicKey.3 projects/ppc64/secure/lib/libcrypto/man/d2i_X509.3 projects/ppc64/secure/lib/libcrypto/man/d2i_X509_ALGOR.3 projects/ppc64/secure/lib/libcrypto/man/d2i_X509_CRL.3 projects/ppc64/secure/lib/libcrypto/man/d2i_X509_NAME.3 projects/ppc64/secure/lib/libcrypto/man/d2i_X509_REQ.3 projects/ppc64/secure/lib/libcrypto/man/d2i_X509_SIG.3 projects/ppc64/secure/lib/libcrypto/man/des.3 projects/ppc64/secure/lib/libcrypto/man/dh.3 projects/ppc64/secure/lib/libcrypto/man/dsa.3 projects/ppc64/secure/lib/libcrypto/man/ecdsa.3 projects/ppc64/secure/lib/libcrypto/man/engine.3 projects/ppc64/secure/lib/libcrypto/man/err.3 projects/ppc64/secure/lib/libcrypto/man/evp.3 projects/ppc64/secure/lib/libcrypto/man/hmac.3 projects/ppc64/secure/lib/libcrypto/man/lh_stats.3 projects/ppc64/secure/lib/libcrypto/man/lhash.3 projects/ppc64/secure/lib/libcrypto/man/md5.3 projects/ppc64/secure/lib/libcrypto/man/mdc2.3 projects/ppc64/secure/lib/libcrypto/man/pem.3 projects/ppc64/secure/lib/libcrypto/man/rand.3 projects/ppc64/secure/lib/libcrypto/man/rc4.3 projects/ppc64/secure/lib/libcrypto/man/ripemd.3 projects/ppc64/secure/lib/libcrypto/man/rsa.3 projects/ppc64/secure/lib/libcrypto/man/sha.3 projects/ppc64/secure/lib/libcrypto/man/threads.3 projects/ppc64/secure/lib/libcrypto/man/ui.3 projects/ppc64/secure/lib/libcrypto/man/ui_compat.3 projects/ppc64/secure/lib/libcrypto/man/x509.3 projects/ppc64/secure/lib/libssl/man/SSL_CIPHER_get_name.3 projects/ppc64/secure/lib/libssl/man/SSL_COMP_add_compression_method.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_add_extra_chain_cert.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_add_session.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_ctrl.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_flush_sessions.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_free.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_get_ex_new_index.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_get_verify_mode.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_load_verify_locations.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_new.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_sess_number.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_sess_set_cache_size.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_sess_set_get_cb.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_sessions.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_cert_store.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_cert_verify_callback.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_cipher_list.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_client_CA_list.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_client_cert_cb.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_default_passwd_cb.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_generate_session_id.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_info_callback.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_max_cert_list.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_mode.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_msg_callback.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_options.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_quiet_shutdown.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_session_cache_mode.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_session_id_context.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_ssl_version.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_timeout.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_tmp_dh_callback.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_tmp_rsa_callback.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_set_verify.3 projects/ppc64/secure/lib/libssl/man/SSL_CTX_use_certificate.3 projects/ppc64/secure/lib/libssl/man/SSL_SESSION_free.3 projects/ppc64/secure/lib/libssl/man/SSL_SESSION_get_ex_new_index.3 projects/ppc64/secure/lib/libssl/man/SSL_SESSION_get_time.3 projects/ppc64/secure/lib/libssl/man/SSL_accept.3 projects/ppc64/secure/lib/libssl/man/SSL_alert_type_string.3 projects/ppc64/secure/lib/libssl/man/SSL_clear.3 projects/ppc64/secure/lib/libssl/man/SSL_connect.3 projects/ppc64/secure/lib/libssl/man/SSL_do_handshake.3 projects/ppc64/secure/lib/libssl/man/SSL_free.3 projects/ppc64/secure/lib/libssl/man/SSL_get_SSL_CTX.3 projects/ppc64/secure/lib/libssl/man/SSL_get_ciphers.3 projects/ppc64/secure/lib/libssl/man/SSL_get_client_CA_list.3 projects/ppc64/secure/lib/libssl/man/SSL_get_current_cipher.3 projects/ppc64/secure/lib/libssl/man/SSL_get_default_timeout.3 projects/ppc64/secure/lib/libssl/man/SSL_get_error.3 projects/ppc64/secure/lib/libssl/man/SSL_get_ex_data_X509_STORE_CTX_idx.3 projects/ppc64/secure/lib/libssl/man/SSL_get_ex_new_index.3 projects/ppc64/secure/lib/libssl/man/SSL_get_fd.3 projects/ppc64/secure/lib/libssl/man/SSL_get_peer_cert_chain.3 projects/ppc64/secure/lib/libssl/man/SSL_get_peer_certificate.3 projects/ppc64/secure/lib/libssl/man/SSL_get_rbio.3 projects/ppc64/secure/lib/libssl/man/SSL_get_session.3 projects/ppc64/secure/lib/libssl/man/SSL_get_verify_result.3 projects/ppc64/secure/lib/libssl/man/SSL_get_version.3 projects/ppc64/secure/lib/libssl/man/SSL_library_init.3 projects/ppc64/secure/lib/libssl/man/SSL_load_client_CA_file.3 projects/ppc64/secure/lib/libssl/man/SSL_new.3 projects/ppc64/secure/lib/libssl/man/SSL_pending.3 projects/ppc64/secure/lib/libssl/man/SSL_read.3 projects/ppc64/secure/lib/libssl/man/SSL_rstate_string.3 projects/ppc64/secure/lib/libssl/man/SSL_session_reused.3 projects/ppc64/secure/lib/libssl/man/SSL_set_bio.3 projects/ppc64/secure/lib/libssl/man/SSL_set_connect_state.3 projects/ppc64/secure/lib/libssl/man/SSL_set_fd.3 projects/ppc64/secure/lib/libssl/man/SSL_set_session.3 projects/ppc64/secure/lib/libssl/man/SSL_set_shutdown.3 projects/ppc64/secure/lib/libssl/man/SSL_set_verify_result.3 projects/ppc64/secure/lib/libssl/man/SSL_shutdown.3 projects/ppc64/secure/lib/libssl/man/SSL_state_string.3 projects/ppc64/secure/lib/libssl/man/SSL_want.3 projects/ppc64/secure/lib/libssl/man/SSL_write.3 projects/ppc64/secure/lib/libssl/man/d2i_SSL_SESSION.3 projects/ppc64/secure/lib/libssl/man/ssl.3 projects/ppc64/secure/usr.bin/openssl/man/CA.pl.1 projects/ppc64/secure/usr.bin/openssl/man/asn1parse.1 projects/ppc64/secure/usr.bin/openssl/man/ca.1 projects/ppc64/secure/usr.bin/openssl/man/ciphers.1 projects/ppc64/secure/usr.bin/openssl/man/crl.1 projects/ppc64/secure/usr.bin/openssl/man/crl2pkcs7.1 projects/ppc64/secure/usr.bin/openssl/man/dgst.1 projects/ppc64/secure/usr.bin/openssl/man/dhparam.1 projects/ppc64/secure/usr.bin/openssl/man/dsa.1 projects/ppc64/secure/usr.bin/openssl/man/dsaparam.1 projects/ppc64/secure/usr.bin/openssl/man/ec.1 projects/ppc64/secure/usr.bin/openssl/man/ecparam.1 projects/ppc64/secure/usr.bin/openssl/man/enc.1 projects/ppc64/secure/usr.bin/openssl/man/errstr.1 projects/ppc64/secure/usr.bin/openssl/man/gendsa.1 projects/ppc64/secure/usr.bin/openssl/man/genrsa.1 projects/ppc64/secure/usr.bin/openssl/man/nseq.1 projects/ppc64/secure/usr.bin/openssl/man/ocsp.1 projects/ppc64/secure/usr.bin/openssl/man/openssl.1 projects/ppc64/secure/usr.bin/openssl/man/passwd.1 projects/ppc64/secure/usr.bin/openssl/man/pkcs12.1 projects/ppc64/secure/usr.bin/openssl/man/pkcs7.1 projects/ppc64/secure/usr.bin/openssl/man/pkcs8.1 projects/ppc64/secure/usr.bin/openssl/man/rand.1 projects/ppc64/secure/usr.bin/openssl/man/req.1 projects/ppc64/secure/usr.bin/openssl/man/rsa.1 projects/ppc64/secure/usr.bin/openssl/man/rsautl.1 projects/ppc64/secure/usr.bin/openssl/man/s_client.1 projects/ppc64/secure/usr.bin/openssl/man/s_server.1 projects/ppc64/secure/usr.bin/openssl/man/s_time.1 projects/ppc64/secure/usr.bin/openssl/man/sess_id.1 projects/ppc64/secure/usr.bin/openssl/man/smime.1 projects/ppc64/secure/usr.bin/openssl/man/speed.1 projects/ppc64/secure/usr.bin/openssl/man/spkac.1 projects/ppc64/secure/usr.bin/openssl/man/verify.1 projects/ppc64/secure/usr.bin/openssl/man/version.1 projects/ppc64/secure/usr.bin/openssl/man/x509.1 projects/ppc64/secure/usr.bin/openssl/man/x509v3_config.1 projects/ppc64/share/man/man5/nsswitch.conf.5 projects/ppc64/share/man/man5/services.5 projects/ppc64/share/man/man5/src.conf.5 projects/ppc64/share/man/man7/build.7 projects/ppc64/share/man/man9/ieee80211.9 projects/ppc64/share/man/man9/ieee80211_crypto.9 projects/ppc64/share/man/man9/ieee80211_node.9 projects/ppc64/share/man/man9/ieee80211_output.9 projects/ppc64/share/man/man9/ieee80211_scan.9 projects/ppc64/share/misc/committers-ports.dot projects/ppc64/share/mk/bsd.lib.mk projects/ppc64/share/mk/bsd.own.mk projects/ppc64/share/mk/bsd.port.mk projects/ppc64/share/mk/bsd.prog.mk projects/ppc64/share/mk/sys.mk projects/ppc64/sys/amd64/amd64/apic_vector.S projects/ppc64/sys/amd64/amd64/local_apic.c projects/ppc64/sys/amd64/amd64/pmap.c projects/ppc64/sys/amd64/include/apicvar.h projects/ppc64/sys/amd64/include/pmc_mdep.h projects/ppc64/sys/amd64/include/reg.h projects/ppc64/sys/amd64/linux32/linux.h projects/ppc64/sys/arm/conf/KB920X projects/ppc64/sys/arm/mv/mv_sata.c projects/ppc64/sys/arm/xscale/ixp425/cambria_fled.c projects/ppc64/sys/boot/i386/boot2/boot2.c projects/ppc64/sys/boot/i386/gptboot/gptboot.c projects/ppc64/sys/boot/i386/zfsboot/zfsboot.c projects/ppc64/sys/boot/powerpc/ps3/Makefile projects/ppc64/sys/boot/powerpc/ps3/conf.c projects/ppc64/sys/boot/powerpc/ps3/ps3cons.c projects/ppc64/sys/boot/powerpc/ps3/ps3net.c projects/ppc64/sys/cam/cam_xpt.c projects/ppc64/sys/cam/scsi/scsi_all.h projects/ppc64/sys/cam/scsi/scsi_da.c projects/ppc64/sys/compat/freebsd32/freebsd32.h projects/ppc64/sys/compat/freebsd32/freebsd32_misc.c projects/ppc64/sys/compat/ia32/ia32_signal.h projects/ppc64/sys/compat/linprocfs/linprocfs.c projects/ppc64/sys/compat/linux/linux_ioctl.c projects/ppc64/sys/compat/linux/linux_stats.c projects/ppc64/sys/compat/svr4/svr4_stat.c projects/ppc64/sys/compat/x86bios/x86bios.c projects/ppc64/sys/conf/NOTES projects/ppc64/sys/conf/files projects/ppc64/sys/conf/files.amd64 projects/ppc64/sys/conf/files.i386 projects/ppc64/sys/conf/files.pc98 projects/ppc64/sys/conf/kern.mk projects/ppc64/sys/conf/kern.post.mk projects/ppc64/sys/conf/kern.pre.mk projects/ppc64/sys/conf/kmod.mk projects/ppc64/sys/contrib/dev/acpica/changes.txt projects/ppc64/sys/contrib/dev/acpica/common/dmextern.c projects/ppc64/sys/contrib/dev/acpica/compiler/aslanalyze.c projects/ppc64/sys/contrib/dev/acpica/compiler/aslcompiler.h projects/ppc64/sys/contrib/dev/acpica/compiler/aslpredef.c projects/ppc64/sys/contrib/dev/acpica/compiler/aslstubs.c projects/ppc64/sys/contrib/dev/acpica/compiler/asltypes.h projects/ppc64/sys/contrib/dev/acpica/debugger/dbdisply.c projects/ppc64/sys/contrib/dev/acpica/events/evgpe.c projects/ppc64/sys/contrib/dev/acpica/events/evgpeblk.c projects/ppc64/sys/contrib/dev/acpica/events/evxface.c projects/ppc64/sys/contrib/dev/acpica/events/evxfevnt.c projects/ppc64/sys/contrib/dev/acpica/executer/exdebug.c projects/ppc64/sys/contrib/dev/acpica/executer/exmutex.c projects/ppc64/sys/contrib/dev/acpica/executer/exoparg2.c projects/ppc64/sys/contrib/dev/acpica/executer/exregion.c projects/ppc64/sys/contrib/dev/acpica/include/acevents.h projects/ppc64/sys/contrib/dev/acpica/include/acexcep.h projects/ppc64/sys/contrib/dev/acpica/include/acglobal.h projects/ppc64/sys/contrib/dev/acpica/include/aclocal.h projects/ppc64/sys/contrib/dev/acpica/include/acpixf.h projects/ppc64/sys/contrib/dev/acpica/include/actables.h projects/ppc64/sys/contrib/dev/acpica/include/actypes.h projects/ppc64/sys/contrib/dev/acpica/include/platform/acfreebsd.h projects/ppc64/sys/contrib/dev/acpica/parser/psxface.c projects/ppc64/sys/contrib/dev/acpica/tables/tbutils.c projects/ppc64/sys/contrib/dev/acpica/tables/tbxface.c projects/ppc64/sys/contrib/dev/acpica/utilities/utglobal.c projects/ppc64/sys/dev/acpica/acpi.c projects/ppc64/sys/dev/acpica/acpi_button.c projects/ppc64/sys/dev/acpica/acpi_ec.c projects/ppc64/sys/dev/acpica/acpi_lid.c projects/ppc64/sys/dev/acpica/acpivar.h projects/ppc64/sys/dev/ata/ata-all.h projects/ppc64/sys/dev/ata/ata-raid.c projects/ppc64/sys/dev/bce/if_bce.c projects/ppc64/sys/dev/bce/if_bcereg.h projects/ppc64/sys/dev/bge/if_bge.c projects/ppc64/sys/dev/bktr/ioctl_bt848.h projects/ppc64/sys/dev/bktr/ioctl_meteor.h projects/ppc64/sys/dev/cxgb/common/cxgb_ael1002.c projects/ppc64/sys/dev/cxgb/common/cxgb_common.h projects/ppc64/sys/dev/cxgb/common/cxgb_t3_hw.c projects/ppc64/sys/dev/cxgb/cxgb_adapter.h projects/ppc64/sys/dev/cxgb/cxgb_main.c projects/ppc64/sys/dev/cxgb/cxgb_sge.c projects/ppc64/sys/dev/e1000/e1000_80003es2lan.c projects/ppc64/sys/dev/e1000/e1000_82571.c projects/ppc64/sys/dev/e1000/e1000_82575.c projects/ppc64/sys/dev/e1000/e1000_82575.h projects/ppc64/sys/dev/e1000/e1000_defines.h projects/ppc64/sys/dev/e1000/e1000_hw.h projects/ppc64/sys/dev/e1000/e1000_ich8lan.c projects/ppc64/sys/dev/e1000/e1000_ich8lan.h projects/ppc64/sys/dev/e1000/e1000_mac.c projects/ppc64/sys/dev/e1000/e1000_manage.c projects/ppc64/sys/dev/e1000/e1000_phy.c projects/ppc64/sys/dev/e1000/e1000_regs.h projects/ppc64/sys/dev/e1000/if_em.c projects/ppc64/sys/dev/e1000/if_em.h projects/ppc64/sys/dev/e1000/if_igb.c projects/ppc64/sys/dev/e1000/if_igb.h projects/ppc64/sys/dev/fb/vesa.c projects/ppc64/sys/dev/firewire/sbp.c projects/ppc64/sys/dev/hwpmc/hwpmc_core.c projects/ppc64/sys/dev/hwpmc/hwpmc_core.h projects/ppc64/sys/dev/hwpmc/hwpmc_intel.c projects/ppc64/sys/dev/hwpmc/hwpmc_logging.c projects/ppc64/sys/dev/hwpmc/hwpmc_mod.c projects/ppc64/sys/dev/hwpmc/pmc_events.h projects/ppc64/sys/dev/isp/isp.c projects/ppc64/sys/dev/isp/isp_freebsd.c projects/ppc64/sys/dev/isp/isp_freebsd.h projects/ppc64/sys/dev/isp/isp_library.c projects/ppc64/sys/dev/isp/ispvar.h projects/ppc64/sys/dev/ixgbe/LICENSE projects/ppc64/sys/dev/ixgbe/ixgbe.c projects/ppc64/sys/dev/ixgbe/ixgbe.h projects/ppc64/sys/dev/ixgbe/ixgbe_82598.c projects/ppc64/sys/dev/ixgbe/ixgbe_82599.c projects/ppc64/sys/dev/ixgbe/ixgbe_api.c projects/ppc64/sys/dev/ixgbe/ixgbe_api.h projects/ppc64/sys/dev/ixgbe/ixgbe_common.c projects/ppc64/sys/dev/ixgbe/ixgbe_phy.c projects/ppc64/sys/dev/ixgbe/ixgbe_phy.h projects/ppc64/sys/dev/ixgbe/ixgbe_type.h projects/ppc64/sys/dev/malo/if_malo.c projects/ppc64/sys/dev/mpt/mpt_cam.c projects/ppc64/sys/dev/ofw/ofw_standard.c projects/ppc64/sys/dev/sound/pci/envy24.c projects/ppc64/sys/dev/sound/pci/envy24.h projects/ppc64/sys/dev/sound/pci/envy24ht.c projects/ppc64/sys/dev/sound/pci/envy24ht.h projects/ppc64/sys/dev/sound/pci/es137x.c projects/ppc64/sys/dev/sound/pci/spicds.c projects/ppc64/sys/dev/sound/pci/spicds.h projects/ppc64/sys/dev/sound/pcm/dsp.c projects/ppc64/sys/dev/syscons/scvidctl.c projects/ppc64/sys/dev/syscons/syscons.c projects/ppc64/sys/dev/ubsec/ubsec.c projects/ppc64/sys/dev/usb/controller/ehci_pci.c projects/ppc64/sys/dev/usb/controller/ohci_pci.c projects/ppc64/sys/dev/usb/input/ukbd.c projects/ppc64/sys/dev/usb/quirk/usb_quirk.c projects/ppc64/sys/dev/usb/usb_compat_linux.c projects/ppc64/sys/dev/usb/usbdevs projects/ppc64/sys/fs/coda/cnode.h projects/ppc64/sys/fs/coda/coda.h projects/ppc64/sys/fs/coda/coda_subr.c projects/ppc64/sys/fs/coda/coda_subr.h projects/ppc64/sys/fs/coda/coda_venus.c projects/ppc64/sys/fs/coda/coda_venus.h projects/ppc64/sys/fs/coda/coda_vfsops.c projects/ppc64/sys/fs/coda/coda_vfsops.h projects/ppc64/sys/fs/coda/coda_vnops.c projects/ppc64/sys/fs/deadfs/dead_vnops.c projects/ppc64/sys/fs/msdosfs/msdosfs_vfsops.c projects/ppc64/sys/fs/nfs/nfs_commonport.c projects/ppc64/sys/fs/nfs/nfs_commonsubs.c projects/ppc64/sys/fs/nfs/nfs_var.h projects/ppc64/sys/fs/nfs/nfsport.h projects/ppc64/sys/fs/nfs/nfsrvstate.h projects/ppc64/sys/fs/nfsserver/nfs_nfsdport.c projects/ppc64/sys/fs/nfsserver/nfs_nfsdserv.c projects/ppc64/sys/fs/nfsserver/nfs_nfsdstate.c projects/ppc64/sys/geom/geom_vfs.c projects/ppc64/sys/geom/multipath/g_multipath.c projects/ppc64/sys/i386/i386/apic_vector.s projects/ppc64/sys/i386/i386/local_apic.c projects/ppc64/sys/i386/i386/pmap.c projects/ppc64/sys/i386/ibcs2/ibcs2_stat.c projects/ppc64/sys/i386/include/apicvar.h projects/ppc64/sys/i386/include/pmc_mdep.h projects/ppc64/sys/i386/linux/linux.h projects/ppc64/sys/ia64/conf/GENERIC projects/ppc64/sys/ia64/ia64/autoconf.c projects/ppc64/sys/ia64/ia64/clock.c projects/ppc64/sys/ia64/ia64/interrupt.c projects/ppc64/sys/ia64/ia64/machdep.c projects/ppc64/sys/ia64/ia64/mp_machdep.c projects/ppc64/sys/ia64/ia64/nexus.c projects/ppc64/sys/ia64/ia64/sapic.c projects/ppc64/sys/ia64/ia64/trap.c projects/ppc64/sys/ia64/include/acpica_machdep.h projects/ppc64/sys/ia64/include/cpufunc.h projects/ppc64/sys/ia64/include/intr.h projects/ppc64/sys/ia64/include/pcpu.h projects/ppc64/sys/kern/init_main.c projects/ppc64/sys/kern/kern_alq.c projects/ppc64/sys/kern/kern_event.c projects/ppc64/sys/kern/kern_sig.c projects/ppc64/sys/kern/sys_pipe.c projects/ppc64/sys/kern/tty_pts.c projects/ppc64/sys/kern/uipc_mqueue.c projects/ppc64/sys/kern/uipc_sem.c projects/ppc64/sys/kern/uipc_shm.c projects/ppc64/sys/kern/vfs_bio.c projects/ppc64/sys/kern/vfs_default.c projects/ppc64/sys/kern/vfs_lookup.c projects/ppc64/sys/kern/vfs_subr.c projects/ppc64/sys/kern/vfs_syscalls.c projects/ppc64/sys/kern/vfs_vnops.c projects/ppc64/sys/mips/conf/AR71XX projects/ppc64/sys/mips/include/cpufunc.h projects/ppc64/sys/mips/mips/support.S projects/ppc64/sys/mips/sibyte/sb_asm.S projects/ppc64/sys/mips/sibyte/sb_scd.c projects/ppc64/sys/modules/Makefile projects/ppc64/sys/modules/em/Makefile projects/ppc64/sys/modules/hwpmc/Makefile projects/ppc64/sys/modules/ixgbe/Makefile projects/ppc64/sys/net/bpf.c projects/ppc64/sys/net80211/ieee80211_hostap.c projects/ppc64/sys/net80211/ieee80211_input.c projects/ppc64/sys/net80211/ieee80211_var.h projects/ppc64/sys/netgraph/ng_deflate.c projects/ppc64/sys/netgraph/ng_ksocket.c projects/ppc64/sys/netgraph/ng_l2tp.c projects/ppc64/sys/netgraph/ng_mppc.c projects/ppc64/sys/netgraph/ng_ppp.c projects/ppc64/sys/netgraph/ng_pptpgre.c projects/ppc64/sys/netgraph/ng_tcpmss.c projects/ppc64/sys/netinet/in.h projects/ppc64/sys/netinet/ipfw/ip_dn_io.c projects/ppc64/sys/netinet/ipfw/ip_fw_sockopt.c projects/ppc64/sys/netinet/sctp_asconf.c projects/ppc64/sys/netinet/sctp_constants.h projects/ppc64/sys/netinet/sctp_indata.c projects/ppc64/sys/netinet/sctp_indata.h projects/ppc64/sys/netinet/sctp_input.c projects/ppc64/sys/netinet/sctp_output.c projects/ppc64/sys/netinet/sctp_output.h projects/ppc64/sys/netinet/sctp_pcb.c projects/ppc64/sys/netinet/sctp_pcb.h projects/ppc64/sys/netinet/sctp_structs.h projects/ppc64/sys/netinet/sctp_usrreq.c projects/ppc64/sys/netinet/sctp_var.h projects/ppc64/sys/netinet/sctputil.c projects/ppc64/sys/netinet/sctputil.h projects/ppc64/sys/netinet6/sctp6_usrreq.c projects/ppc64/sys/netipsec/ipsec.c projects/ppc64/sys/netipsec/key.c projects/ppc64/sys/nfsserver/nfs_srvsubs.c projects/ppc64/sys/powerpc/ofw/ofw_real.c projects/ppc64/sys/powerpc/ofw/ofw_syscons.c projects/ppc64/sys/sparc64/fhc/fhc.c projects/ppc64/sys/sparc64/pci/apb.c projects/ppc64/sys/sparc64/pci/psycho.c projects/ppc64/sys/sparc64/pci/schizo.c projects/ppc64/sys/sparc64/sbus/sbus.c projects/ppc64/sys/sparc64/sparc64/trap.c projects/ppc64/sys/sys/_timespec.h projects/ppc64/sys/sys/ioccom.h projects/ppc64/sys/sys/pcpu.h projects/ppc64/sys/sys/pmc.h projects/ppc64/sys/sys/proc.h projects/ppc64/sys/sys/stat.h projects/ppc64/sys/sys/timespec.h projects/ppc64/sys/sys/vnode.h projects/ppc64/sys/sys/vtoc.h projects/ppc64/sys/teken/teken.c projects/ppc64/sys/ufs/ffs/ffs_vfsops.c projects/ppc64/sys/vm/vm_fault.c projects/ppc64/sys/vm/vm_map.c projects/ppc64/sys/vm/vm_map.h projects/ppc64/sys/vm/vm_page.c projects/ppc64/sys/vm/vm_pageout.c projects/ppc64/tools/build/mk/OptionalObsoleteFiles.inc projects/ppc64/tools/tools/nanobsd/gateworks/common projects/ppc64/tools/tools/nanobsd/nanobsd.sh projects/ppc64/usr.bin/calendar/Makefile projects/ppc64/usr.bin/calendar/calendar.1 projects/ppc64/usr.bin/calendar/calendar.c projects/ppc64/usr.bin/calendar/calendar.h projects/ppc64/usr.bin/calendar/calendars/calendar.australia projects/ppc64/usr.bin/calendar/calendars/calendar.dutch projects/ppc64/usr.bin/calendar/calendars/calendar.freebsd projects/ppc64/usr.bin/calendar/day.c projects/ppc64/usr.bin/calendar/io.c projects/ppc64/usr.bin/calendar/ostern.c projects/ppc64/usr.bin/calendar/paskha.c projects/ppc64/usr.bin/calendar/pathnames.h projects/ppc64/usr.bin/compress/compress.c projects/ppc64/usr.bin/cpio/Makefile projects/ppc64/usr.bin/getent/getent.c projects/ppc64/usr.bin/gzip/gzip.c projects/ppc64/usr.bin/indent/args.c projects/ppc64/usr.bin/indent/indent.1 projects/ppc64/usr.bin/indent/indent.c projects/ppc64/usr.bin/indent/indent_globs.h projects/ppc64/usr.bin/indent/lexi.c projects/ppc64/usr.bin/kdump/kdump.c projects/ppc64/usr.bin/mail/util.c projects/ppc64/usr.bin/make/main.c projects/ppc64/usr.bin/sed/main.c projects/ppc64/usr.bin/sed/sed.1 projects/ppc64/usr.bin/sockstat/sockstat.c projects/ppc64/usr.bin/touch/touch.c projects/ppc64/usr.sbin/Makefile projects/ppc64/usr.sbin/ac/ac.c projects/ppc64/usr.sbin/config/config.y projects/ppc64/usr.sbin/config/lang.l projects/ppc64/usr.sbin/config/main.c projects/ppc64/usr.sbin/config/mkmakefile.c projects/ppc64/usr.sbin/config/mkoptions.c projects/ppc64/usr.sbin/mailwrapper/mailwrapper.8 projects/ppc64/usr.sbin/mailwrapper/mailwrapper.c projects/ppc64/usr.sbin/mtree/compare.c projects/ppc64/usr.sbin/mtree/create.c projects/ppc64/usr.sbin/mtree/mtree.8 projects/ppc64/usr.sbin/pkg_install/add/futil.c projects/ppc64/usr.sbin/pkg_install/add/perform.c projects/ppc64/usr.sbin/pkg_install/delete/perform.c projects/ppc64/usr.sbin/pkg_install/lib/file.c projects/ppc64/usr.sbin/pkg_install/lib/lib.h projects/ppc64/usr.sbin/pkg_install/lib/match.c projects/ppc64/usr.sbin/pkg_install/lib/pen.c projects/ppc64/usr.sbin/pkg_install/lib/plist.c projects/ppc64/usr.sbin/pkg_install/lib/url.c projects/ppc64/usr.sbin/pkg_install/version/perform.c projects/ppc64/usr.sbin/pmcstat/pmcpl_callgraph.c projects/ppc64/usr.sbin/pmcstat/pmcpl_calltree.c projects/ppc64/usr.sbin/pmcstat/pmcstat_log.c projects/ppc64/usr.sbin/pmcstat/pmcstat_log.h projects/ppc64/usr.sbin/sysinstall/sysinstall.8 projects/ppc64/usr.sbin/vidcontrol/vidcontrol.c Directory Properties: projects/ppc64/ (props changed) projects/ppc64/contrib/expat/ (props changed) projects/ppc64/contrib/groff/ (props changed) projects/ppc64/contrib/one-true-awk/ (props changed) projects/ppc64/contrib/tzcode/stdtime/ (props changed) projects/ppc64/contrib/tzcode/zic/ (props changed) projects/ppc64/contrib/tzdata/ (props changed) projects/ppc64/crypto/openssl/ (props changed) projects/ppc64/lib/libz/ (props changed) projects/ppc64/sys/ (props changed) projects/ppc64/sys/contrib/dev/acpica/ (props changed) projects/ppc64/sys/contrib/x86emu/ (props changed) projects/ppc64/sys/dev/xen/xenpci/ (props changed) Modified: projects/ppc64/MAINTAINERS ============================================================================== --- projects/ppc64/MAINTAINERS Tue Apr 6 14:35:30 2010 (r206272) +++ projects/ppc64/MAINTAINERS Tue Apr 6 15:02:41 2010 (r206273) @@ -57,9 +57,9 @@ libfetch des Advance notification reques fetch des Advance notification requested. libpam des Pre-commit review requested. openssh des Pre-commit review requested. -pseudofs des Advance notification requested. -procfs des Advance notification requested. -linprocfs des Advance notification requested. +pseudofs des Pre-commit review requested. +procfs des Pre-commit review requested. +linprocfs des Pre-commit review requested. lpr gad Pre-commit review requested, particularly for lpd/recvjob.c and lpd/printjob.c. newsyslog(8) gad Heads-up appreciated. I'm going thru the PR's for it. Modified: projects/ppc64/ObsoleteFiles.inc ============================================================================== --- projects/ppc64/ObsoleteFiles.inc Tue Apr 6 14:35:30 2010 (r206272) +++ projects/ppc64/ObsoleteFiles.inc Tue Apr 6 15:02:41 2010 (r206273) @@ -14,6 +14,14 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20100326: [ia64] removed +.if ${TARGET_ARCH} == "ia64" +OLD_FILES+=usr/include/machine/nexusvar.h +.endif +# 20100326: gcpio removal +OLD_FILES+=usr/bin/gcpio +OLD_FILES+=usr/share/info/cpio.info.gz +OLD_FILES+=usr/share/man/man1/gcpio.1.gz # 20100322: libz update OLD_LIBS+=lib/libz.so.5 .if ${TARGET_ARCH} == "amd64" Modified: projects/ppc64/UPDATING ============================================================================== --- projects/ppc64/UPDATING Tue Apr 6 14:35:30 2010 (r206272) +++ projects/ppc64/UPDATING Tue Apr 6 15:02:41 2010 (r206273) @@ -22,6 +22,16 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9. machines to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20100402: + WITH_CTF can now be specified in src.conf (not recommended, there + are some problems with static executables), make.conf (would also + affect ports which do not use GNU make and do not override the + compile targets) or in the kernel config (via "makeoptions + WITH_CTF=yes"). + When WITH_CTF was specified there before this was silently ignored, + so make sure that WITH_CTF is not used in places which could lead + to unwanted behavior. + 20100311: The kernel option COMPAT_IA32 has been replaced with COMPAT_FREEBSD32 to allow 32-bit compatibility on non-x86 platforms. All kernel Modified: projects/ppc64/bin/cp/utils.c ============================================================================== --- projects/ppc64/bin/cp/utils.c Tue Apr 6 14:35:30 2010 (r206272) +++ projects/ppc64/bin/cp/utils.c Tue Apr 6 15:02:41 2010 (r206273) @@ -323,8 +323,8 @@ setfile(struct stat *fs, int fd) fs->st_mode &= S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO; - TIMESPEC_TO_TIMEVAL(&tv[0], &fs->st_atimespec); - TIMESPEC_TO_TIMEVAL(&tv[1], &fs->st_mtimespec); + TIMESPEC_TO_TIMEVAL(&tv[0], &fs->st_atim); + TIMESPEC_TO_TIMEVAL(&tv[1], &fs->st_mtim); if (islink ? lutimes(to.p_path, tv) : utimes(to.p_path, tv)) { warn("%sutimes: %s", islink ? "l" : "", to.p_path); rval = 1; Modified: projects/ppc64/bin/ls/cmp.c ============================================================================== --- projects/ppc64/bin/ls/cmp.c Tue Apr 6 14:35:30 2010 (r206272) +++ projects/ppc64/bin/ls/cmp.c Tue Apr 6 15:02:41 2010 (r206273) @@ -66,17 +66,17 @@ int modcmp(const FTSENT *a, const FTSENT *b) { - if (b->fts_statp->st_mtimespec.tv_sec > - a->fts_statp->st_mtimespec.tv_sec) + if (b->fts_statp->st_mtim.tv_sec > + a->fts_statp->st_mtim.tv_sec) return (1); - if (b->fts_statp->st_mtimespec.tv_sec < - a->fts_statp->st_mtimespec.tv_sec) + if (b->fts_statp->st_mtim.tv_sec < + a->fts_statp->st_mtim.tv_sec) return (-1); - if (b->fts_statp->st_mtimespec.tv_nsec > - a->fts_statp->st_mtimespec.tv_nsec) + if (b->fts_statp->st_mtim.tv_nsec > + a->fts_statp->st_mtim.tv_nsec) return (1); - if (b->fts_statp->st_mtimespec.tv_nsec < - a->fts_statp->st_mtimespec.tv_nsec) + if (b->fts_statp->st_mtim.tv_nsec < + a->fts_statp->st_mtim.tv_nsec) return (-1); return (strcoll(a->fts_name, b->fts_name)); } @@ -92,17 +92,17 @@ int acccmp(const FTSENT *a, const FTSENT *b) { - if (b->fts_statp->st_atimespec.tv_sec > - a->fts_statp->st_atimespec.tv_sec) + if (b->fts_statp->st_atim.tv_sec > + a->fts_statp->st_atim.tv_sec) return (1); - if (b->fts_statp->st_atimespec.tv_sec < - a->fts_statp->st_atimespec.tv_sec) + if (b->fts_statp->st_atim.tv_sec < + a->fts_statp->st_atim.tv_sec) return (-1); - if (b->fts_statp->st_atimespec.tv_nsec > - a->fts_statp->st_atimespec.tv_nsec) + if (b->fts_statp->st_atim.tv_nsec > + a->fts_statp->st_atim.tv_nsec) return (1); - if (b->fts_statp->st_atimespec.tv_nsec < - a->fts_statp->st_atimespec.tv_nsec) + if (b->fts_statp->st_atim.tv_nsec < + a->fts_statp->st_atim.tv_nsec) return (-1); return (strcoll(a->fts_name, b->fts_name)); } @@ -118,17 +118,17 @@ int birthcmp(const FTSENT *a, const FTSENT *b) { - if (b->fts_statp->st_birthtimespec.tv_sec > - a->fts_statp->st_birthtimespec.tv_sec) + if (b->fts_statp->st_birthtim.tv_sec > + a->fts_statp->st_birthtim.tv_sec) return (1); - if (b->fts_statp->st_birthtimespec.tv_sec < - a->fts_statp->st_birthtimespec.tv_sec) + if (b->fts_statp->st_birthtim.tv_sec < + a->fts_statp->st_birthtim.tv_sec) return (-1); - if (b->fts_statp->st_birthtimespec.tv_nsec > - a->fts_statp->st_birthtimespec.tv_nsec) + if (b->fts_statp->st_birthtim.tv_nsec > + a->fts_statp->st_birthtim.tv_nsec) return (1); - if (b->fts_statp->st_birthtimespec.tv_nsec < - a->fts_statp->st_birthtimespec.tv_nsec) + if (b->fts_statp->st_birthtim.tv_nsec < + a->fts_statp->st_birthtim.tv_nsec) return (-1); return (strcoll(a->fts_name, b->fts_name)); } @@ -144,17 +144,17 @@ int statcmp(const FTSENT *a, const FTSENT *b) { - if (b->fts_statp->st_ctimespec.tv_sec > - a->fts_statp->st_ctimespec.tv_sec) + if (b->fts_statp->st_ctim.tv_sec > + a->fts_statp->st_ctim.tv_sec) return (1); - if (b->fts_statp->st_ctimespec.tv_sec < - a->fts_statp->st_ctimespec.tv_sec) + if (b->fts_statp->st_ctim.tv_sec < + a->fts_statp->st_ctim.tv_sec) return (-1); - if (b->fts_statp->st_ctimespec.tv_nsec > - a->fts_statp->st_ctimespec.tv_nsec) + if (b->fts_statp->st_ctim.tv_nsec > + a->fts_statp->st_ctim.tv_nsec) return (1); - if (b->fts_statp->st_ctimespec.tv_nsec < - a->fts_statp->st_ctimespec.tv_nsec) + if (b->fts_statp->st_ctim.tv_nsec < + a->fts_statp->st_ctim.tv_nsec) return (-1); return (strcoll(a->fts_name, b->fts_name)); } Modified: projects/ppc64/bin/pax/Makefile ============================================================================== --- projects/ppc64/bin/pax/Makefile Tue Apr 6 14:35:30 2010 (r206272) +++ projects/ppc64/bin/pax/Makefile Tue Apr 6 15:02:41 2010 (r206273) @@ -29,8 +29,5 @@ PROG= pax SRCS= ar_io.c ar_subs.c buf_subs.c cache.c cpio.c file_subs.c ftree.c \ gen_subs.c getoldopt.c options.c pat_rep.c pax.c sel_subs.c \ tables.c tar.c tty_subs.c -#XXX NOTYET -#MAN= pax.1 tar.1 cpio.1 -#LINKS= ${BINDIR}/pax ${BINDIR}/tar ${BINDIR}/pax ${BINDIR}/cpio .include Modified: projects/ppc64/bin/pax/getoldopt.c ============================================================================== --- projects/ppc64/bin/pax/getoldopt.c Tue Apr 6 14:35:30 2010 (r206272) +++ projects/ppc64/bin/pax/getoldopt.c Tue Apr 6 15:02:41 2010 (r206273) @@ -1,4 +1,4 @@ -/* $OpenBSD: getoldopt.c,v 1.4 2000/01/22 20:24:51 deraadt Exp $ */ +/* $OpenBSD: getoldopt.c,v 1.9 2009/10/27 23:59:22 deraadt Exp $ */ /* $NetBSD: getoldopt.c,v 1.3 1995/03/21 09:07:28 cgd Exp $ */ /*- @@ -7,7 +7,7 @@ * otherwise, it uses the old rules used by tar, dump, and ps. * * Written 25 August 1985 by John Gilmore (ihnp4!hoptoad!gnu) and placed - * in the Pubic Domain for your edification and enjoyment. + * in the Public Domain for your edification and enjoyment. */ #include @@ -33,7 +33,8 @@ getoldopt(int argc, char **argv, const c optarg = NULL; if (key == NULL) { /* First time */ - if (argc < 2) return EOF; + if (argc < 2) + return (-1); key = argv[1]; if (*key == '-') use_getopt++; @@ -42,18 +43,18 @@ getoldopt(int argc, char **argv, const c } if (use_getopt) - return getopt(argc, argv, optstring); + return (getopt(argc, argv, optstring)); c = *key++; if (c == '\0') { key--; - return EOF; + return (-1); } place = strchr(optstring, c); if (place == NULL || c == ':') { fprintf(stderr, "%s: unknown option %c\n", argv[0], c); - return('?'); + return ('?'); } place++; @@ -64,9 +65,9 @@ getoldopt(int argc, char **argv, const c } else { fprintf(stderr, "%s: %c argument missing\n", argv[0], c); - return('?'); + return ('?'); } } - return(c); + return (c); } Modified: projects/ppc64/bin/rcp/rcp.c ============================================================================== --- projects/ppc64/bin/rcp/rcp.c Tue Apr 6 14:35:30 2010 (r206272) +++ projects/ppc64/bin/rcp/rcp.c Tue Apr 6 15:02:41 2010 (r206273) @@ -390,8 +390,8 @@ syserr: run_err("%s: %s", name, strerr * versions expecting microseconds. */ (void)snprintf(buf, sizeof(buf), "T%ld 0 %ld 0\n", - (long)stb.st_mtimespec.tv_sec, - (long)stb.st_atimespec.tv_sec); + (long)stb.st_mtim.tv_sec, + (long)stb.st_atim.tv_sec); (void)write(rem, buf, strlen(buf)); if (response() < 0) goto next; @@ -454,8 +454,8 @@ rsource(char *name, struct stat *statp) last++; if (pflag) { (void)snprintf(path, sizeof(path), "T%ld 0 %ld 0\n", - (long)statp->st_mtimespec.tv_sec, - (long)statp->st_atimespec.tv_sec); + (long)statp->st_mtim.tv_sec, + (long)statp->st_atim.tv_sec); (void)write(rem, path, strlen(path)); if (response() < 0) { closedir(dirp); Modified: projects/ppc64/bin/sh/expand.c ============================================================================== --- projects/ppc64/bin/sh/expand.c Tue Apr 6 14:35:30 2010 (r206272) +++ projects/ppc64/bin/sh/expand.c Tue Apr 6 15:02:41 2010 (r206273) @@ -273,7 +273,6 @@ exptilde(char *p, int flag) switch(c) { case CTLESC: /* This means CTL* are always considered quoted. */ case CTLVAR: - case CTLENDVAR: case CTLBACKQ: case CTLBACKQ | CTLQUOTE: case CTLARI: @@ -285,6 +284,7 @@ exptilde(char *p, int flag) goto done; break; case '/': + case CTLENDVAR: goto done; } p++; @@ -506,7 +506,9 @@ subevalvar(char *p, char *str, int strlo int amount; herefd = -1; - argstr(p, 0); + argstr(p, (subtype == VSTRIMLEFT || subtype == VSTRIMLEFTMAX || + subtype == VSTRIMRIGHT || subtype == VSTRIMRIGHTMAX ? + EXP_CASE : 0) | EXP_TILDE); STACKSTRNUL(expdest); herefd = saveherefd; argbackq = saveargbackq; Modified: projects/ppc64/bin/sh/mksyntax.c ============================================================================== --- projects/ppc64/bin/sh/mksyntax.c Tue Apr 6 14:35:30 2010 (r206272) +++ projects/ppc64/bin/sh/mksyntax.c Tue Apr 6 15:02:41 2010 (r206273) @@ -232,8 +232,6 @@ main(int argc __unused, char **argv __un add("\n", "CNL"); add("\\", "CBACK"); add("`", "CBQUOTE"); - add("'", "CSQUOTE"); - add("\"", "CDQUOTE"); add("$", "CVAR"); add("}", "CENDVAR"); add("(", "CLP"); Modified: projects/ppc64/bin/sh/options.c ============================================================================== --- projects/ppc64/bin/sh/options.c Tue Apr 6 14:35:30 2010 (r206272) +++ projects/ppc64/bin/sh/options.c Tue Apr 6 15:02:41 2010 (r206273) @@ -93,8 +93,11 @@ procargs(int argc, char **argv) options(1); if (*argptr == NULL && minusc == NULL) sflag = 1; - if (iflag == 2 && sflag == 1 && isatty(0) && isatty(1)) + if (iflag != 0 && sflag == 1 && isatty(0) && isatty(1)) { iflag = 1; + if (Eflag == 2) + Eflag = 1; + } if (mflag == 2) mflag = iflag; for (i = 0; i < NOPTS; i++) Modified: projects/ppc64/bin/sh/parser.c ============================================================================== --- projects/ppc64/bin/sh/parser.c Tue Apr 6 14:35:30 2010 (r206272) +++ projects/ppc64/bin/sh/parser.c Tue Apr 6 15:02:41 2010 (r206273) @@ -79,6 +79,10 @@ struct heredoc { int striptabs; /* if set, strip leading tabs */ }; +struct parser_temp { + struct parser_temp *next; + void *data; +}; STATIC struct heredoc *heredoclist; /* list of here documents to read */ @@ -94,6 +98,7 @@ STATIC struct heredoc *heredoc; STATIC int quoteflag; /* set if (part of) last token was quoted */ STATIC int startlinno; /* line # where last token started */ STATIC int funclinno; /* line # where the current function started */ +STATIC struct parser_temp *parser_temp; /* XXX When 'noaliases' is set to one, no alias expansion takes place. */ static int noaliases = 0; @@ -117,6 +122,73 @@ STATIC void synerror(const char *); STATIC void setprompt(int); +STATIC void * +parser_temp_alloc(size_t len) +{ + struct parser_temp *t; + + INTOFF; + t = ckmalloc(sizeof(*t)); + t->data = NULL; + t->next = parser_temp; + parser_temp = t; + t->data = ckmalloc(len); + INTON; + return t->data; +} + + +STATIC void * +parser_temp_realloc(void *ptr, size_t len) +{ + struct parser_temp *t; + + INTOFF; + t = parser_temp; + if (ptr != t->data) + error("bug: parser_temp_realloc misused"); + t->data = ckrealloc(t->data, len); + INTON; + return t->data; +} + + +STATIC void +parser_temp_free_upto(void *ptr) +{ + struct parser_temp *t; + int done = 0; + + INTOFF; + while (parser_temp != NULL && !done) { + t = parser_temp; + parser_temp = t->next; + done = t->data == ptr; + ckfree(t->data); + ckfree(t); + } + INTON; + if (!done) + error("bug: parser_temp_free_upto misused"); +} + + +STATIC void +parser_temp_free_all(void) +{ + struct parser_temp *t; + + INTOFF; + while (parser_temp != NULL) { + t = parser_temp; + parser_temp = t->next; + ckfree(t->data); + ckfree(t); + } + INTON; +} + + /* * Read and parse a command. Returns NEOF on end of file. (NULL is a * valid parse tree indicating a blank line.) @@ -127,6 +199,11 @@ parsecmd(int interact) { int t; + /* This assumes the parser is not re-entered, + * which could happen if we add command substitution on PS1/PS2. + */ + parser_temp_free_all(); + tokpushback = 0; doprompt = interact; if (doprompt) @@ -863,6 +940,21 @@ breakloop: } +#define MAXNEST_STATIC 8 +struct tokenstate +{ + const char *syntax; /* *SYNTAX */ + int parenlevel; /* levels of parentheses in arithmetic */ + enum tokenstate_category + { + TSTATE_TOP, + TSTATE_VAR_OLD, /* ${var+-=?}, inherits dquotes */ + TSTATE_VAR_NEW, /* other ${var...}, own dquote state */ + TSTATE_ARITH + } category; +}; + + /* * Called to parse command substitutions. */ @@ -1040,7 +1132,7 @@ done: #define PARSEARITH() {goto parsearith; parsearith_return:;} STATIC int -readtoken1(int firstc, char const *syntax, char *eofmark, int striptabs) +readtoken1(int firstc, char const *initialsyntax, char *eofmark, int striptabs) { int c = firstc; char *out; @@ -1048,22 +1140,21 @@ readtoken1(int firstc, char const *synta char line[EOFMARKLEN + 1]; struct nodelist *bqlist; int quotef; - int dblquote; - int varnest; /* levels of variables expansion */ - int arinest; /* levels of arithmetic expansion */ - int parenlevel; /* levels of parens in arithmetic */ - char const *prevsyntax; /* syntax before arithmetic */ + int newvarnest; + int level; int synentry; + struct tokenstate state_static[MAXNEST_STATIC]; + int maxnest = MAXNEST_STATIC; + struct tokenstate *state = state_static; startlinno = plinno; - dblquote = 0; - if (syntax == DQSYNTAX) - dblquote = 1; quotef = 0; bqlist = NULL; - varnest = 0; - arinest = 0; - parenlevel = 0; + newvarnest = 0; + level = 0; + state[level].syntax = initialsyntax; + state[level].parenlevel = 0; + state[level].category = TSTATE_TOP; STARTSTACKSTR(out); loop: { /* for each line, until end of word */ @@ -1071,11 +1162,11 @@ readtoken1(int firstc, char const *synta for (;;) { /* until end of line or end of word */ CHECKSTRSPACE(3, out); /* permit 3 calls to USTPUTC */ - synentry = syntax[c]; + synentry = state[level].syntax[c]; switch(synentry) { case CNL: /* '\n' */ - if (syntax == BASESYNTAX) + if (state[level].syntax == BASESYNTAX) goto endword; /* exit outer loop */ USTPUTC(c, out); plinno++; @@ -1089,7 +1180,7 @@ readtoken1(int firstc, char const *synta USTPUTC(c, out); break; case CCTL: - if (eofmark == NULL || dblquote) + if (eofmark == NULL || initialsyntax != SQSYNTAX) USTPUTC(CTLESC, out); USTPUTC(c, out); break; @@ -1105,41 +1196,34 @@ readtoken1(int firstc, char const *synta else setprompt(0); } else { - if (dblquote && c != '\\' && - c != '`' && c != '$' && - (c != '"' || eofmark != NULL)) + if (state[level].syntax == DQSYNTAX && + c != '\\' && c != '`' && c != '$' && + (c != '"' || (eofmark != NULL && + newvarnest == 0)) && + (c != '}' || state[level].category != TSTATE_VAR_OLD)) USTPUTC('\\', out); if (SQSYNTAX[c] == CCTL) USTPUTC(CTLESC, out); - else if (eofmark == NULL) + else if (eofmark == NULL || + newvarnest > 0) USTPUTC(CTLQUOTEMARK, out); USTPUTC(c, out); quotef++; } break; case CSQUOTE: - if (eofmark == NULL) - USTPUTC(CTLQUOTEMARK, out); - syntax = SQSYNTAX; + USTPUTC(CTLQUOTEMARK, out); + state[level].syntax = SQSYNTAX; break; case CDQUOTE: - if (eofmark == NULL) - USTPUTC(CTLQUOTEMARK, out); - syntax = DQSYNTAX; - dblquote = 1; + USTPUTC(CTLQUOTEMARK, out); + state[level].syntax = DQSYNTAX; break; case CENDQUOTE: - if (eofmark != NULL && arinest == 0 && - varnest == 0) { + if (eofmark != NULL && newvarnest == 0) USTPUTC(c, out); - } else { - if (arinest) { - syntax = ARISYNTAX; - dblquote = 0; - } else if (eofmark == NULL) { - syntax = BASESYNTAX; - dblquote = 0; - } + else { + state[level].syntax = BASESYNTAX; quotef++; } break; @@ -1147,30 +1231,33 @@ readtoken1(int firstc, char const *synta PARSESUB(); /* parse substitution */ break; case CENDVAR: /* '}' */ - if (varnest > 0) { - varnest--; + if (level > 0 && + (state[level].category == TSTATE_VAR_OLD || + state[level].category == TSTATE_VAR_NEW)) { + if (state[level].category == TSTATE_VAR_OLD) + state[level - 1].syntax = state[level].syntax; + else + newvarnest--; + level--; USTPUTC(CTLENDVAR, out); } else { USTPUTC(c, out); } break; case CLP: /* '(' in arithmetic */ - parenlevel++; + state[level].parenlevel++; USTPUTC(c, out); break; case CRP: /* ')' in arithmetic */ - if (parenlevel > 0) { + if (state[level].parenlevel > 0) { USTPUTC(c, out); - --parenlevel; + --state[level].parenlevel; } else { if (pgetc() == ')') { - if (--arinest == 0) { + if (level > 0 && + state[level].category == TSTATE_ARITH) { + level--; USTPUTC(CTLENDARI, out); - syntax = prevsyntax; - if (syntax == DQSYNTAX) - dblquote = 1; - else - dblquote = 0; } else USTPUTC(')', out); } else { @@ -1184,13 +1271,15 @@ readtoken1(int firstc, char const *synta } break; case CBQUOTE: /* '`' */ - out = parsebackq(out, &bqlist, 1, dblquote, - arinest || dblquote); + out = parsebackq(out, &bqlist, 1, + state[level].syntax == DQSYNTAX && + (eofmark == NULL || newvarnest > 0), + state[level].syntax == DQSYNTAX || state[level].syntax == ARISYNTAX); break; case CEOF: goto endword; /* exit outer loop */ default: - if (varnest == 0) + if (level == 0) goto endword; /* exit outer loop */ USTPUTC(c, out); } @@ -1198,14 +1287,17 @@ readtoken1(int firstc, char const *synta } } endword: - if (syntax == ARISYNTAX) + if (state[level].syntax == ARISYNTAX) synerror("Missing '))'"); - if (syntax != BASESYNTAX && eofmark == NULL) + if (state[level].syntax != BASESYNTAX && eofmark == NULL) synerror("Unterminated quoted string"); - if (varnest != 0) { + if (state[level].category == TSTATE_VAR_OLD || + state[level].category == TSTATE_VAR_NEW) { startlinno = plinno; synerror("Missing '}'"); } + if (state != state_static) + parser_temp_free_upto(state); USTPUTC('\0', out); len = out - stackblock(); out = stackblock(); @@ -1228,7 +1320,6 @@ endword: /* end of readtoken routine */ - /* * Check to see whether we are at the end of the here document. When this * is called, c is set to the first character of the next input line. If @@ -1345,8 +1436,11 @@ parsesub: { PARSEARITH(); } else { pungetc(); - out = parsebackq(out, &bqlist, 0, dblquote, - arinest || dblquote); + out = parsebackq(out, &bqlist, 0, + state[level].syntax == DQSYNTAX && + (eofmark == NULL || newvarnest > 0), + state[level].syntax == DQSYNTAX || + state[level].syntax == ARISYNTAX); } } else { USTPUTC(CTLVAR, out); @@ -1401,6 +1495,8 @@ parsesub: { subtype = VSERROR; if (c == '}') pungetc(); + else if (c == '\n' || c == PEOF) + synerror("Unexpected end of line in substitution"); else USTPUTC(c, out); } else { @@ -1417,6 +1513,8 @@ parsesub: { default: p = strchr(types, c); if (p == NULL) { + if (c == '\n' || c == PEOF) + synerror("Unexpected end of line in substitution"); if (flags == VSNUL) STPUTC(':', out); STPUTC(c, out); @@ -1442,11 +1540,44 @@ parsesub: { pungetc(); } STPUTC('=', out); - if (subtype != VSLENGTH && (dblquote || arinest)) + if (subtype != VSLENGTH && (state[level].syntax == DQSYNTAX || + state[level].syntax == ARISYNTAX)) flags |= VSQUOTE; *(stackblock() + typeloc) = subtype | flags; - if (subtype != VSNORMAL) - varnest++; + if (subtype != VSNORMAL) { + if (level + 1 >= maxnest) { + maxnest *= 2; + if (state == state_static) { + state = parser_temp_alloc( + maxnest * sizeof(*state)); + memcpy(state, state_static, + MAXNEST_STATIC * sizeof(*state)); + } else + state = parser_temp_realloc(state, + maxnest * sizeof(*state)); + } + level++; + state[level].parenlevel = 0; + if (subtype == VSMINUS || subtype == VSPLUS || + subtype == VSQUESTION || subtype == VSASSIGN) { + /* + * For operators that were in the Bourne shell, + * inherit the double-quote state. + */ + state[level].syntax = state[level - 1].syntax; + state[level].category = TSTATE_VAR_OLD; + } else { + /* + * The other operators take a pattern, + * so go to BASESYNTAX. + * Also, ' and " are now special, even + * in here documents. + */ + state[level].syntax = BASESYNTAX; + state[level].category = TSTATE_VAR_NEW; + newvarnest++; + } + } } goto parsesub_return; } @@ -1457,21 +1588,26 @@ parsesub: { */ parsearith: { - if (++arinest == 1) { - prevsyntax = syntax; - syntax = ARISYNTAX; - USTPUTC(CTLARI, out); - if (dblquote) - USTPUTC('"',out); - else - USTPUTC(' ',out); - } else { - /* - * we collapse embedded arithmetic expansion to - * parenthesis, which should be equivalent - */ - USTPUTC('(', out); + if (level + 1 >= maxnest) { + maxnest *= 2; + if (state == state_static) { + state = parser_temp_alloc( + maxnest * sizeof(*state)); + memcpy(state, state_static, + MAXNEST_STATIC * sizeof(*state)); + } else + state = parser_temp_realloc(state, + maxnest * sizeof(*state)); } + level++; + state[level].syntax = ARISYNTAX; + state[level].parenlevel = 0; + state[level].category = TSTATE_ARITH; + USTPUTC(CTLARI, out); + if (state[level - 1].syntax == DQSYNTAX) + USTPUTC('"',out); + else + USTPUTC(' ',out); goto parsearith_return; } Modified: projects/ppc64/bin/sh/sh.1 ============================================================================== --- projects/ppc64/bin/sh/sh.1 Tue Apr 6 14:35:30 2010 (r206272) +++ projects/ppc64/bin/sh/sh.1 Tue Apr 6 15:02:41 2010 (r206273) @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd March 6, 2010 +.Dd April 5, 2010 .Dt SH 1 .Os .Sh NAME @@ -210,7 +210,8 @@ Enable the built-in .Xr emacs 1 command line editor (disables the .Fl V -option if it has been set). +option if it has been set; +set automatically when interactive on terminals). .It Fl e Li errexit Exit immediately if any untested command fails in non-interactive mode. The exit status of a command is considered to be @@ -1178,10 +1179,20 @@ consists of all characters until the mat .Ql } . Any .Ql } -escaped by a backslash or within a quoted string, and characters in +escaped by a backslash or within a single-quoted string, and characters in embedded arithmetic expansions, command substitutions, and variable expansions, are not examined in determining the matching .Ql } . +Except for the variants with +.Ql + , +.Ql - , +.Ql = +or +.Ql ?\& , +any +.Ql } +within a double-quoted string is also not examined in determining the matching +.Ql } . .Pp The simplest form for parameter expansion is: .Pp @@ -1265,6 +1276,14 @@ is substituted. In the parameter expansions shown previously, use of the colon in the format results in a test for a parameter that is unset or null; omission of the colon results in a test for a parameter that is only unset. +.Pp +The +.Ar word +inherits the type of quoting +(unquoted, double-quoted or here-document) +from the surroundings, +with the exception that a backslash that quotes a closing brace is removed +during quote removal. .Bl -tag -width indent .It Li ${# Ns Ar parameter Ns Li } String Length. Modified: projects/ppc64/bin/test/test.c ============================================================================== --- projects/ppc64/bin/test/test.c Tue Apr 6 14:35:30 2010 (r206272) +++ projects/ppc64/bin/test/test.c Tue Apr 6 15:02:41 2010 (r206273) @@ -572,12 +572,12 @@ newerf (const char *f1, const char *f2) if (stat(f1, &b1) != 0 || stat(f2, &b2) != 0) return 0; - if (b1.st_mtimespec.tv_sec > b2.st_mtimespec.tv_sec) + if (b1.st_mtim.tv_sec > b2.st_mtim.tv_sec) return 1; - if (b1.st_mtimespec.tv_sec < b2.st_mtimespec.tv_sec) + if (b1.st_mtim.tv_sec < b2.st_mtim.tv_sec) return 0; - return (b1.st_mtimespec.tv_nsec > b2.st_mtimespec.tv_nsec); + return (b1.st_mtim.tv_nsec > b2.st_mtim.tv_nsec); } static int Modified: projects/ppc64/cddl/contrib/opensolaris/cmd/zfs/zfs.8 ============================================================================== --- projects/ppc64/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Tue Apr 6 14:35:30 2010 (r206272) +++ projects/ppc64/cddl/contrib/opensolaris/cmd/zfs/zfs.8 Tue Apr 6 15:02:41 2010 (r206273) @@ -1,24 +1,9 @@ '\" te -.\" CDDL HEADER START -.\" -.\" The contents of this file are subject to the terms of the -.\" Common Development and Distribution License (the "License"). -.\" You may not use this file except in compliance with the License. -.\" -.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE -.\" or http://www.opensolaris.org/os/licensing. -.\" See the License for the specific language governing permissions -.\" and limitations under the License. -.\" -.\" When distributing Covered Code, include this CDDL HEADER in each -.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE. -.\" If applicable, add the following below this CDDL HEADER, with the -.\" fields enclosed by brackets "[]" replaced with your own identifying -.\" information: Portions Copyright [yyyy] [name of copyright owner] -.\" -.\" CDDL HEADER END -.\" Copyright (c) 2007 Sun Microsystems, Inc. All Rights Reserved. -.TH zfs 1M "8 Apr 2008" "SunOS 5.11" "System Administration Commands" +.\" Copyright (c) 2009 Sun Microsystems, Inc. All Rights Reserved. +.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. +.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License. +.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner] +.TH zfs 1M "14 Feb 2009" "SunOS 5.11" "System Administration Commands" .SH NAME zfs \- configures ZFS file systems .SH SYNOPSIS @@ -44,7 +29,8 @@ zfs \- configures ZFS file systems .LP .nf -\fBzfs\fR \fBsnapshot\fR [\fB-r\fR] \fIfilesystem@snapname\fR|\fIvolume@snapname\fR +\fBzfs\fR \fBsnapshot\fR [\fB-r\fR] [\fB-o\fR \fIproperty\fR=\fIvalue\fR]... + \fIfilesystem@snapname\fR|\fIvolume@snapname\fR .fi .LP @@ -54,7 +40,7 @@ zfs \- configures ZFS file systems .LP .nf -\fBzfs\fR \fBclone\fR [\fB-p\fR] \fIsnapshot\fR \fIfilesystem\fR|\fIvolume\fR +\fBzfs\fR \fBclone\fR [\fB-p\fR] [\fB-o\fR \fIproperty\fR=\fIvalue\fR] ... \fIsnapshot\fR \fIfilesystem\fR|\fIvolume\fR .fi .LP @@ -65,7 +51,7 @@ zfs \- configures ZFS file systems .LP .nf \fBzfs\fR \fBrename\fR \fIfilesystem\fR|\fIvolume\fR|\fIsnapshot\fR - \fIfilesystem\fR|\fIvolume\fR|\fIsnapshot\fR + \fIfilesystem\fR|\fIvolume\fR|\fIsnapshot\fR .fi .LP @@ -81,23 +67,23 @@ zfs \- configures ZFS file systems .LP .nf \fBzfs\fR \fBlist\fR [\fB-rH\fR] [\fB-o\fR \fIproperty\fR[,...]] [\fB-t\fR \fItype\fR[,...]] - [\fB-s\fR \fIproperty\fR] ... [\fB-S\fR \fIproperty\fR ... [\fIfilesystem\fR|\fIvolume\fR|\fIsnapshot\fR] ... + [\fB-s\fR \fIproperty\fR] ... [\fB-S\fR \fIproperty\fR] ... [\fIfilesystem\fR|\fIvolume\fR|\fIsnapshot\fR] ... .fi .LP .nf -\fBzfs\fR \fBset\fR \fIproperty\fR=\fIvalue\fR \fIfilesystem\fR|\fIvolume\fR ... +\fBzfs\fR \fBset\fR \fIproperty\fR=\fIvalue\fR \fIfilesystem\fR|\fIvolume\fR|snapshot ... .fi .LP .nf \fBzfs\fR \fBget\fR [\fB-rHp\fR] [\fB-o\fR \fIfield\fR[,...]] [\fB-s\fR \fIsource\fR[,...]] "\fIall\fR" | \fIproperty\fR[,...] - \fIfilesystem\fR|\fIvolume\fR|\fIsnapshot\fR ... + \fIfilesystem\fR|\fIvolume\fR|\fIsnapshot\fR ... .fi .LP .nf -\fBzfs\fR \fBinherit\fR [\fB-r\fR] \fIproperty\fR \fIfilesystem\fR|\fIvolume\fR ... +\fBzfs\fR \fBinherit\fR [\fB-r\fR] \fIproperty\fR \fIfilesystem\fR|\fIvolume|snapshot\fR ... .fi .LP @@ -132,12 +118,12 @@ zfs \- configures ZFS file systems .LP .nf -\fBzfs\fR \fBunshare\fR \fB-a\fR \fIfilesystem\fR|\fImountpoint\fR +\fBzfs\fR \fBunshare\fR \fB-a\fR \fIfilesystem\fR|\fImountpoint\fR .fi .LP .nf -\fBzfs\fR \fBsend\fR [\fB-vR\fR] [\fB-\fR[\fB-iI\fR] \fIsnapshot\fR] \fIsnapshot\fR +\fBzfs\fR \fBsend\fR [\fB-vR\fR] [\fB-\fR[\fBiI\fR] \fIsnapshot\fR] \fIsnapshot\fR .fi .LP @@ -153,7 +139,7 @@ zfs \- configures ZFS file systems .LP .nf \fBzfs\fR \fBallow\fR [\fB-ldug\fR] "\fIeveryone\fR"|\fIuser\fR|\fIgroup\fR[,...] \fIperm\fR|\fI@setname\fR[,...] - \fIfilesystem\fR|\fIvolume\fR + \fIfilesystem\fR|\fIvolume\fR .fi .LP @@ -174,7 +160,7 @@ zfs \- configures ZFS file systems .LP .nf \fBzfs\fR \fBunallow\fR [\fB-rldug\fR] "\fIeveryone\fR"|\fIuser\fR|\fIgroup\fR[,...] [\fIperm\fR|@\fIsetname\fR[,... ]] - \fIfilesystem\fR|\fIvolume\fR + \fIfilesystem\fR|\fIvolume\fR .fi .LP @@ -192,20 +178,10 @@ zfs \- configures ZFS file systems \fBzfs\fR \fBunallow\fR [\fB-r\fR] \fB-s\fR @setname [\fIperm\fR|@\fIsetname\fR[,... ]] \fIfilesystem\fR|\fIvolume\fR .fi -.LP -.nf -\fBzfs\fR \fBjail\fR \fBjailid\fR \fB\fIfilesystem\fR\fR -.fi -.LP -.nf -\fBzfs\fR \fBunjail\fR \fBjailid\fR \fB\fIfilesystem\fR\fR -.fi - .SH DESCRIPTION .sp .LP -The \fBzfs\fR command configures \fBZFS\fR datasets within a \fBZFS\fR storage pool, as described in \fBzpool\fR(1M). A -dataset is identified by a unique path within the \fBZFS\fR namespace. For example: *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Apr 6 18:39:17 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 62A151065670; Tue, 6 Apr 2010 18:39:17 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4F22A8FC14; Tue, 6 Apr 2010 18:39:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o36IdH0n046769; Tue, 6 Apr 2010 18:39:17 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o36IdH51046749; Tue, 6 Apr 2010 18:39:17 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <201004061839.o36IdH51046749@svn.freebsd.org> From: Roman Divacky Date: Tue, 6 Apr 2010 18:39:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206280 - in projects/clangbsd: contrib/llvm/docs contrib/llvm/include/llvm contrib/llvm/include/llvm/ADT contrib/llvm/include/llvm/CodeGen contrib/llvm/include/llvm/MC contrib/llvm/inc... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Apr 2010 18:39:17 -0000 Author: rdivacky Date: Tue Apr 6 18:39:16 2010 New Revision: 206280 URL: http://svn.freebsd.org/changeset/base/206280 Log: Merge from vendor and update the build. Added: projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp - copied unchanged from r206275, vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp - copied unchanged from r206275, vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp projects/clangbsd/contrib/llvm/test/CodeGen/X86/unreachable-loop-sinking.ll - copied unchanged from r206275, vendor/llvm/dist/test/CodeGen/X86/unreachable-loop-sinking.ll projects/clangbsd/contrib/llvm/tools/clang/lib/Runtime/ - copied from r206275, vendor/clang/dist/lib/Runtime/ projects/clangbsd/contrib/llvm/tools/clang/test/Analysis/inline4.c - copied unchanged from r206275, vendor/clang/dist/test/Analysis/inline4.c projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenObjC/property-dbg.m - copied unchanged from r206275, vendor/clang/dist/test/CodeGenObjC/property-dbg.m projects/clangbsd/contrib/llvm/tools/clang/test/Index/complete-enums.c - copied unchanged from r206275, vendor/clang/dist/test/Index/complete-enums.c projects/clangbsd/contrib/llvm/tools/clang/test/Index/complete-macros.c - copied unchanged from r206275, vendor/clang/dist/test/Index/complete-macros.c Deleted: projects/clangbsd/contrib/llvm/include/llvm/CodeGen/DwarfWriter.h projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfPrinter.h projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfWriter.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/Disassembler/Makefile Modified: projects/clangbsd/contrib/llvm/docs/HowToReleaseLLVM.html projects/clangbsd/contrib/llvm/docs/Lexicon.html projects/clangbsd/contrib/llvm/docs/SourceLevelDebugging.html projects/clangbsd/contrib/llvm/docs/WritingAnLLVMBackend.html projects/clangbsd/contrib/llvm/include/llvm/ADT/OwningPtr.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/FastISel.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/GCMetadataPrinter.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineDominators.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineFunction.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineFunctionAnalysis.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h projects/clangbsd/contrib/llvm/include/llvm/CodeGen/SelectionDAGISel.h projects/clangbsd/contrib/llvm/include/llvm/IntrinsicInst.h projects/clangbsd/contrib/llvm/include/llvm/Intrinsics.td projects/clangbsd/contrib/llvm/include/llvm/LLVMContext.h projects/clangbsd/contrib/llvm/include/llvm/MC/MCAsmInfo.h projects/clangbsd/contrib/llvm/include/llvm/MC/MCInstPrinter.h projects/clangbsd/contrib/llvm/include/llvm/MC/MCParser/AsmParser.h projects/clangbsd/contrib/llvm/include/llvm/MC/MCSection.h projects/clangbsd/contrib/llvm/include/llvm/MC/MCSectionELF.h projects/clangbsd/contrib/llvm/include/llvm/MC/MCStreamer.h projects/clangbsd/contrib/llvm/include/llvm/Support/Allocator.h projects/clangbsd/contrib/llvm/include/llvm/Support/IRBuilder.h projects/clangbsd/contrib/llvm/include/llvm/Support/IRReader.h projects/clangbsd/contrib/llvm/include/llvm/Support/MathExtras.h projects/clangbsd/contrib/llvm/include/llvm/Support/MemoryBuffer.h projects/clangbsd/contrib/llvm/include/llvm/Support/SourceMgr.h projects/clangbsd/contrib/llvm/include/llvm/Target/Target.td projects/clangbsd/contrib/llvm/include/llvm/Target/TargetLowering.h projects/clangbsd/contrib/llvm/include/llvm/Target/TargetRegistry.h projects/clangbsd/contrib/llvm/include/llvm/Transforms/Utils/BuildLibCalls.h projects/clangbsd/contrib/llvm/lib/Analysis/IVUsers.cpp projects/clangbsd/contrib/llvm/lib/AsmParser/Parser.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/CMakeLists.txt projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.h projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfException.h projects/clangbsd/contrib/llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/GCMetadataPrinter.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/LLVMTargetMachine.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/MachineFunction.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/MachineFunctionAnalysis.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/MachineModuleInfo.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/MachineSink.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp projects/clangbsd/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h projects/clangbsd/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp projects/clangbsd/contrib/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp projects/clangbsd/contrib/llvm/lib/ExecutionEngine/JIT/OProfileJITEventListener.cpp projects/clangbsd/contrib/llvm/lib/MC/MCAsmInfo.cpp projects/clangbsd/contrib/llvm/lib/MC/MCAsmInfoCOFF.cpp projects/clangbsd/contrib/llvm/lib/MC/MCAsmStreamer.cpp projects/clangbsd/contrib/llvm/lib/MC/MCParser/AsmParser.cpp projects/clangbsd/contrib/llvm/lib/MC/MCStreamer.cpp projects/clangbsd/contrib/llvm/lib/Support/MemoryBuffer.cpp projects/clangbsd/contrib/llvm/lib/Support/SourceMgr.cpp projects/clangbsd/contrib/llvm/lib/Support/regengine.inc projects/clangbsd/contrib/llvm/lib/Support/regexec.c projects/clangbsd/contrib/llvm/lib/Target/ARM/ARM.td projects/clangbsd/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/ARMISelLowering.h projects/clangbsd/contrib/llvm/lib/Target/ARM/ARMInstrFormats.td projects/clangbsd/contrib/llvm/lib/Target/ARM/ARMMCAsmInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h projects/clangbsd/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp projects/clangbsd/contrib/llvm/lib/Target/ARM/Makefile projects/clangbsd/contrib/llvm/lib/Target/Alpha/Alpha.td projects/clangbsd/contrib/llvm/lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/Blackfin/AsmPrinter/BlackfinAsmPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/CellSPU/SPURegisterInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/MBlaze/AsmPrinter/MBlazeAsmPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/MBlaze/MBlaze.td projects/clangbsd/contrib/llvm/lib/Target/MSP430/AsmPrinter/MSP430AsmPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/MSP430/AsmPrinter/MSP430InstPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/MSP430/AsmPrinter/MSP430InstPrinter.h projects/clangbsd/contrib/llvm/lib/Target/MSP430/MSP430.td projects/clangbsd/contrib/llvm/lib/Target/MSP430/MSP430InstrFormats.td projects/clangbsd/contrib/llvm/lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/Mips/Mips.td projects/clangbsd/contrib/llvm/lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.h projects/clangbsd/contrib/llvm/lib/Target/PIC16/PIC16DebugInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/PIC16/PIC16DebugInfo.h projects/clangbsd/contrib/llvm/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/PowerPC/PPC.td projects/clangbsd/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp projects/clangbsd/contrib/llvm/lib/Target/PowerPC/PPCInstrFormats.td projects/clangbsd/contrib/llvm/lib/Target/PowerPC/PPCMCAsmInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/Sparc/Sparc.td projects/clangbsd/contrib/llvm/lib/Target/Sparc/SparcMCAsmInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/SystemZ/AsmPrinter/SystemZAsmPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.h projects/clangbsd/contrib/llvm/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/AsmPrinter/X86AsmPrinter.h projects/clangbsd/contrib/llvm/lib/Target/X86/AsmPrinter/X86IntelInstPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/AsmPrinter/X86IntelInstPrinter.h projects/clangbsd/contrib/llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/SSEDomainFix.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/X86.td projects/clangbsd/contrib/llvm/lib/Target/X86/X86FastISel.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/X86ISelLowering.h projects/clangbsd/contrib/llvm/lib/Target/X86/X86InstrFormats.td projects/clangbsd/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/X86InstrInfo.td projects/clangbsd/contrib/llvm/lib/Target/X86/X86MCAsmInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp projects/clangbsd/contrib/llvm/lib/Target/XCore/XCore.td projects/clangbsd/contrib/llvm/lib/Target/XCore/XCoreISelLowering.cpp projects/clangbsd/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/XCore/XCoreMCAsmInfo.cpp projects/clangbsd/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp projects/clangbsd/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Utils/BuildLibCalls.cpp projects/clangbsd/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp projects/clangbsd/contrib/llvm/lib/VMCore/AutoUpgrade.cpp projects/clangbsd/contrib/llvm/lib/VMCore/LLVMContext.cpp projects/clangbsd/contrib/llvm/lib/VMCore/LLVMContextImpl.cpp projects/clangbsd/contrib/llvm/lib/VMCore/LLVMContextImpl.h projects/clangbsd/contrib/llvm/lib/VMCore/Pass.cpp projects/clangbsd/contrib/llvm/test/Analysis/BasicAA/modref.ll projects/clangbsd/contrib/llvm/test/Bitcode/memcpy.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/memcpy.ll projects/clangbsd/contrib/llvm/test/CodeGen/X86/personality.ll projects/clangbsd/contrib/llvm/test/MC/Disassembler/arm-tests.txt projects/clangbsd/contrib/llvm/test/MC/Disassembler/neon-tests.txt projects/clangbsd/contrib/llvm/test/MC/Disassembler/thumb-tests.txt projects/clangbsd/contrib/llvm/test/Transforms/InstCombine/memset_chk.ll projects/clangbsd/contrib/llvm/test/Transforms/InstCombine/objsize.ll projects/clangbsd/contrib/llvm/test/Transforms/MemCpyOpt/align.ll projects/clangbsd/contrib/llvm/test/Transforms/SimplifyLibCalls/StrCpy.ll projects/clangbsd/contrib/llvm/test/Verifier/2006-12-12-IntrinsicDefine.ll projects/clangbsd/contrib/llvm/tools/clang/examples/wpa/clang-wpa.cpp projects/clangbsd/contrib/llvm/tools/clang/include/clang/AST/PrettyPrinter.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInstance.h projects/clangbsd/contrib/llvm/tools/clang/include/clang/Parse/Parser.h projects/clangbsd/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/AST/Stmt.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/BugReporter.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Checker/Environment.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGObjC.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.h projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayout.h projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CGValue.h projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/ASTMerge.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Frontend/PCHReader.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/CodeCompleteConsumer.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp projects/clangbsd/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGen/asm.c projects/clangbsd/contrib/llvm/tools/clang/test/CodeGen/builtin-memfns.c projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/eh.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/new.cpp projects/clangbsd/contrib/llvm/tools/clang/test/CodeGenCXX/value-init.cpp projects/clangbsd/contrib/llvm/tools/clang/test/Makefile projects/clangbsd/contrib/llvm/tools/clang/test/Parser/cxx-decl.cpp projects/clangbsd/contrib/llvm/tools/clang/tools/CIndex/CIndex.cpp projects/clangbsd/contrib/llvm/tools/clang/tools/CIndex/CIndexCodeCompletion.cpp projects/clangbsd/contrib/llvm/tools/clang/tools/CIndex/CIndexDiagnostic.cpp projects/clangbsd/contrib/llvm/tools/clang/tools/driver/cc1_main.cpp projects/clangbsd/contrib/llvm/tools/edis/EDDisassembler.cpp projects/clangbsd/contrib/llvm/tools/llc/llc.cpp projects/clangbsd/contrib/llvm/tools/llvm-mc/Disassembler.cpp projects/clangbsd/contrib/llvm/tools/llvm-mc/llvm-mc.cpp projects/clangbsd/contrib/llvm/tools/lto/LTOModule.cpp projects/clangbsd/contrib/llvm/unittests/ExecutionEngine/JIT/JITTest.cpp projects/clangbsd/contrib/llvm/utils/FileCheck/FileCheck.cpp projects/clangbsd/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp projects/clangbsd/contrib/llvm/utils/TableGen/AsmWriterInst.cpp projects/clangbsd/contrib/llvm/utils/TableGen/InstrInfoEmitter.cpp projects/clangbsd/contrib/llvm/utils/TableGen/InstrInfoEmitter.h projects/clangbsd/contrib/llvm/utils/TableGen/Record.cpp projects/clangbsd/contrib/llvm/utils/TableGen/Record.h projects/clangbsd/usr.bin/clang/bin/clang/Makefile projects/clangbsd/usr.bin/clang/lib/libllvmasmprinter/Makefile Directory Properties: projects/clangbsd/contrib/llvm/ (props changed) projects/clangbsd/contrib/llvm/tools/clang/ (props changed) Modified: projects/clangbsd/contrib/llvm/docs/HowToReleaseLLVM.html ============================================================================== --- projects/clangbsd/contrib/llvm/docs/HowToReleaseLLVM.html Tue Apr 6 18:37:25 2010 (r206279) +++ projects/clangbsd/contrib/llvm/docs/HowToReleaseLLVM.html Tue Apr 6 18:39:16 2010 (r206280) @@ -362,13 +362,12 @@ Qualification Details

- - - + + - - - + + +
ArchitectureOSllvm-gcc baselineclang baseline tests
x86-32Mac OS 10.5last releasenonellvm dejagnu, clang tests, test-suite (including spec)
x86-32Linuxlast releasenonellvm dejagnu, clang tests, test-suite (including spec)
x86-32FreeBSDnonenonellvm dejagnu, clang tests, test-suite
x86-32Linuxlast releaselast releasellvm dejagnu, clang tests, test-suite (including spec)
x86-32FreeBSDnonelast releasellvm dejagnu, clang tests, test-suite
x86-32mingwlast releasenoneQT
x86-64Mac OS 10.5last releasenonellvm dejagnu, clang tests, test-suite (including spec)
x86-64Linuxlast releasenonellvm dejagnu, clang tests, test-suite (including spec)
x86-64FreeBSDnonenonellvm dejagnu, clang tests, test-suite
x86-64Mac OS 10.Xlast releaselast releasellvm dejagnu, clang tests, test-suite (including spec)
x86-64Linuxlast releaselast releasellvm dejagnu, clang tests, test-suite (including spec)
x86-64FreeBSDnonelast releasellvm dejagnu, clang tests, test-suite

@@ -518,7 +517,7 @@ svn copy https://llvm.org/svn/llvm-proje src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"> The LLVM Compiler Infrastructure
- Last modified: $Date: 2009-10-12 16:46:08 +0200 (Mon, 12 Oct 2009) $ + Last modified: $Date: 2010-04-05 20:35:37 +0200 (Mon, 05 Apr 2010) $ Modified: projects/clangbsd/contrib/llvm/docs/Lexicon.html ============================================================================== --- projects/clangbsd/contrib/llvm/docs/Lexicon.html Tue Apr 6 18:37:25 2010 (r206279) +++ projects/clangbsd/contrib/llvm/docs/Lexicon.html Tue Apr 6 18:39:16 2010 (r206280) @@ -50,6 +50,11 @@ LCSSA LICM Load-VN + LTO + + - M - + + MC - O - @@ -167,15 +172,24 @@ href="http://www.program-transformation.
-
LCSSA
-
Loop-Closed Static Single Assignment Form
+
LCSSA
+
Loop-Closed Static Single Assignment Form
LICM
Loop Invariant Code Motion
Load-VN
Load Value Numbering
+
LTO
+
Link-Time Optimization
+
+
+ + +
+
+
MC
+
Machine Code
-
@@ -255,7 +269,7 @@ href="http://www.program-transformation. src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01">The LLVM Team
The LLVM Compiler Infrastructure
-Last modified: $Date: 2008-12-14 09:01:51 +0100 (Sun, 14 Dec 2008) $ +Last modified: $Date: 2010-04-05 07:48:47 +0200 (Mon, 05 Apr 2010) $ Modified: projects/clangbsd/contrib/llvm/docs/SourceLevelDebugging.html ============================================================================== --- projects/clangbsd/contrib/llvm/docs/SourceLevelDebugging.html Tue Apr 6 18:37:25 2010 (r206279) +++ projects/clangbsd/contrib/llvm/docs/SourceLevelDebugging.html Tue Apr 6 18:39:16 2010 (r206280) @@ -144,7 +144,7 @@ height="369"> an LLVM user a relationship between generated code and the original program source code.

-

Currently, debug information is consumed by the DwarfWriter to produce dwarf +

Currently, debug information is consumed by DwarfDebug to produce dwarf information used by the gdb debugger. Other targets could use the same information to produce stabs or other debug forms.

@@ -1773,7 +1773,7 @@ enum Trees { Chris Lattner
LLVM Compiler Infrastructure
- Last modified: $Date: 2010-03-31 09:50:17 +0200 (Wed, 31 Mar 2010) $ + Last modified: $Date: 2010-04-05 06:11:11 +0200 (Mon, 05 Apr 2010) $ Modified: projects/clangbsd/contrib/llvm/docs/WritingAnLLVMBackend.html ============================================================================== --- projects/clangbsd/contrib/llvm/docs/WritingAnLLVMBackend.html Tue Apr 6 18:37:25 2010 (r206279) +++ projects/clangbsd/contrib/llvm/docs/WritingAnLLVMBackend.html Tue Apr 6 18:39:16 2010 (r206280) @@ -561,8 +561,7 @@ def AL : Register<"AL">, DwarfRegN

This defines the register AL and assigns it values (with DwarfRegNum) that are used by gcc, gdb, or a debug -information writer (such as DwarfWriter -in llvm/lib/CodeGen/AsmPrinter) to identify a register. For register +information writer to identify a register. For register AL, DwarfRegNum takes an array of 3 values representing 3 different modes: the first element is for X86-64, the second for exception handling (EH) on X86-32, and the third is generic. -1 is a special Dwarf number @@ -2555,7 +2554,7 @@ with assembler. Mason Woo and Misha Brukman
The LLVM Compiler Infrastructure
- Last modified: $Date: 2010-02-02 19:44:12 +0100 (Tue, 02 Feb 2010) $ + Last modified: $Date: 2010-04-05 06:11:11 +0200 (Mon, 05 Apr 2010) $ Modified: projects/clangbsd/contrib/llvm/include/llvm/ADT/OwningPtr.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/ADT/OwningPtr.h Tue Apr 6 18:37:25 2010 (r206279) +++ projects/clangbsd/contrib/llvm/include/llvm/ADT/OwningPtr.h Tue Apr 6 18:39:16 2010 (r206280) @@ -128,7 +128,6 @@ inline void swap(OwningArrayPtr &a, O a.swap(b); } - } // end namespace llvm #endif Modified: projects/clangbsd/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h Tue Apr 6 18:37:25 2010 (r206279) +++ projects/clangbsd/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h Tue Apr 6 18:39:16 2010 (r206280) @@ -18,8 +18,6 @@ #include "llvm/CodeGen/MachineFunctionPass.h" #include "llvm/Support/DebugLoc.h" -#include "llvm/Target/TargetMachine.h" -#include "llvm/ADT/DenseMap.h" namespace llvm { class BlockAddress; @@ -43,63 +41,33 @@ namespace llvm { class MachineConstantPoolValue; class MachineJumpTableInfo; class MachineModuleInfo; + class MachineMove; + class MCAsmInfo; class MCInst; class MCContext; class MCSection; class MCStreamer; class MCSymbol; - class DwarfWriter; + class DwarfDebug; + class DwarfException; class Mangler; - class MCAsmInfo; class TargetLoweringObjectFile; + class TargetData; class Twine; class Type; - class formatted_raw_ostream; /// AsmPrinter - This class is intended to be used as a driving class for all /// asm writers. class AsmPrinter : public MachineFunctionPass { - static char ID; - - // GCMetadataPrinters - The garbage collection metadata printer table. - typedef DenseMap gcp_map_type; - typedef gcp_map_type::iterator gcp_iterator; - gcp_map_type GCMetadataPrinters; - - /// If VerboseAsm is set, a pointer to the loop info for this - /// function. - /// - MachineLoopInfo *LI; - - public: - /// MMI - If available, this is a pointer to the current MachineModuleInfo. - MachineModuleInfo *MMI; - - protected: - /// DW - If available, this is a pointer to the current dwarf writer. - DwarfWriter *DW; - public: - - /// Output stream on which we're printing assembly code. - /// - formatted_raw_ostream &O; - /// Target machine description. /// TargetMachine &TM; - /// getObjFileLowering - Return information about object file lowering. - TargetLoweringObjectFile &getObjFileLowering() const; - /// Target Asm Printer information. /// const MCAsmInfo *MAI; - /// Target Register Information. - /// - const TargetRegisterInfo *TRI; - /// OutContext - This is the context for the output file that we are /// streaming. This owns all of the global MC-related objects for the /// generated translation unit. @@ -114,6 +82,9 @@ namespace llvm { /// The current machine function. const MachineFunction *MF; + /// MMI - This is a pointer to the current MachineModuleInfo. + MachineModuleInfo *MMI; + /// Name-mangler for global names. /// Mangler *Mang; @@ -123,24 +94,28 @@ namespace llvm { /// MCSymbol *CurrentFnSym; - /// getCurrentSection() - Return the current section we are emitting to. - const MCSection *getCurrentSection() const; + private: + // GCMetadataPrinters - The garbage collection metadata printer table. + void *GCMetadataPrinters; // Really a DenseMap. - /// VerboseAsm - Emit comments in assembly output if this is true. /// bool VerboseAsm; + static char ID; + + /// If VerboseAsm is set, a pointer to the loop info for this + /// function. + MachineLoopInfo *LI; - /// Private state for PrintSpecial() - // Assign a unique ID to this machine instruction. - mutable const MachineInstr *LastMI; - mutable const Function *LastFn; - mutable unsigned Counter; - mutable unsigned SetCounter; + /// DD - If the target supports dwarf debug info, this pointer is non-null. + DwarfDebug *DD; + + /// DE - If the target supports dwarf exception info, this pointer is + /// non-null. + DwarfException *DE; protected: - explicit AsmPrinter(formatted_raw_ostream &o, TargetMachine &TM, - MCStreamer &Streamer); + explicit AsmPrinter(TargetMachine &TM, MCStreamer &Streamer); public: virtual ~AsmPrinter(); @@ -153,7 +128,20 @@ namespace llvm { /// unsigned getFunctionNumber() const; - protected: + /// getObjFileLowering - Return information about object file lowering. + TargetLoweringObjectFile &getObjFileLowering() const; + + /// getTargetData - Return information about data layout. + const TargetData &getTargetData() const; + + /// getCurrentSection() - Return the current section we are emitting to. + const MCSection *getCurrentSection() const; + + + //===------------------------------------------------------------------===// + // MachineFunctionPass Implementation. + //===------------------------------------------------------------------===// + /// getAnalysisUsage - Record analysis usage. /// void getAnalysisUsage(AnalysisUsage &AU) const; @@ -163,41 +151,10 @@ namespace llvm { /// call this implementation. bool doInitialization(Module &M); - /// EmitStartOfAsmFile - This virtual method can be overridden by targets - /// that want to emit something at the start of their file. - virtual void EmitStartOfAsmFile(Module &) {} - - /// EmitEndOfAsmFile - This virtual method can be overridden by targets that - /// want to emit something at the end of their file. - virtual void EmitEndOfAsmFile(Module &) {} - /// doFinalization - Shut down the asmprinter. If you override this in your /// pass, you must make sure to call it explicitly. bool doFinalization(Module &M); - /// PrintSpecial - Print information related to the specified machine instr - /// that is independent of the operand, and may be independent of the instr - /// itself. This can be useful for portably encoding the comment character - /// or other bits of target-specific knowledge into the asmstrings. The - /// syntax used is ${:comment}. Targets can override this to add support - /// for their own strange codes. - virtual void PrintSpecial(const MachineInstr *MI, const char *Code) const; - - /// PrintAsmOperand - Print the specified operand of MI, an INLINEASM - /// instruction, using the specified assembler variant. Targets should - /// override this to format as appropriate. This method can return true if - /// the operand is erroneous. - virtual bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo, - unsigned AsmVariant, const char *ExtraCode); - - /// PrintAsmMemoryOperand - Print the specified operand of MI, an INLINEASM - /// instruction, using the specified assembler variant as an address. - /// Targets should override this to format as appropriate. This method can - /// return true if the operand is erroneous. - virtual bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo, - unsigned AsmVariant, - const char *ExtraCode); - /// runOnMachineFunction - Emit the specified function out to the /// OutStreamer. virtual bool runOnMachineFunction(MachineFunction &MF) { @@ -207,6 +164,10 @@ namespace llvm { return false; } + //===------------------------------------------------------------------===// + // Coarse grained IR lowering routines. + //===------------------------------------------------------------------===// + /// SetupMachineFunction - This should be called when a new MachineFunction /// is being processed from runOnMachineFunction. void SetupMachineFunction(MachineFunction &MF); @@ -219,19 +180,6 @@ namespace llvm { /// function. void EmitFunctionBody(); - /// EmitInstruction - Targets should implement this to emit instructions. - virtual void EmitInstruction(const MachineInstr *) { - assert(0 && "EmitInstruction not implemented"); - } - - /// EmitFunctionBodyStart - Targets can override this to emit stuff before - /// the first basic block in the function. - virtual void EmitFunctionBodyStart() {} - - /// EmitFunctionBodyEnd - Targets can override this to emit stuff after - /// the last basic block in the function. - virtual void EmitFunctionBodyEnd() {} - /// EmitConstantPool - Print to the current output stream assembly /// representations of the constants in the constant pool MCP. This is /// used to print out constants which have been "spilled to memory" by @@ -252,36 +200,6 @@ namespace llvm { /// do nothing and return false. bool EmitSpecialLLVMGlobal(const GlobalVariable *GV); - public: - //===------------------------------------------------------------------===// - // Emission and print routines - // - - /// EmitInt8 - Emit a byte directive and value. - /// - void EmitInt8(int Value) const; - - /// EmitInt16 - Emit a short directive and value. - /// - void EmitInt16(int Value) const; - - /// EmitInt32 - Emit a long directive and value. - /// - void EmitInt32(int Value) const; - - /// EmitInt64 - Emit a long long directive and value. - /// - void EmitInt64(uint64_t Value) const; - - - /// EmitLabelDifference - Emit something like ".long Hi-Lo" where the size - /// in bytes of the directive is specified by Size and Hi/Lo specify the - /// labels. This implicitly uses .set if it is available. - void EmitLabelDifference(const MCSymbol *Hi, const MCSymbol *Lo, - unsigned Size) const; - - //===------------------------------------------------------------------===// - /// EmitAlignment - Emit an alignment directive to the specified power of /// two boundary. For example, if you pass in 3 here, you will get an 8 /// byte alignment. If a global value is specified, and if that global has @@ -301,11 +219,69 @@ namespace llvm { void EmitAlignment(unsigned NumBits, const GlobalValue *GV = 0, unsigned ForcedAlignBits = 0, bool UseFillExpr = true) const; + + /// EmitBasicBlockStart - This method prints the label for the specified + /// MachineBasicBlock, an alignment (if present) and a comment describing + /// it if appropriate. + void EmitBasicBlockStart(const MachineBasicBlock *MBB) const; + + + /// EmitGlobalConstant - Print a general LLVM constant to the .s file. + void EmitGlobalConstant(const Constant *CV, unsigned AddrSpace = 0); + + + //===------------------------------------------------------------------===// + // Overridable Hooks + //===------------------------------------------------------------------===// + + // Targets can, or in the case of EmitInstruction, must implement these to + // customize output. + + /// EmitStartOfAsmFile - This virtual method can be overridden by targets + /// that want to emit something at the start of their file. + virtual void EmitStartOfAsmFile(Module &) {} + + /// EmitEndOfAsmFile - This virtual method can be overridden by targets that + /// want to emit something at the end of their file. + virtual void EmitEndOfAsmFile(Module &) {} + + /// EmitFunctionBodyStart - Targets can override this to emit stuff before + /// the first basic block in the function. + virtual void EmitFunctionBodyStart() {} + + /// EmitFunctionBodyEnd - Targets can override this to emit stuff after + /// the last basic block in the function. + virtual void EmitFunctionBodyEnd() {} + + /// EmitInstruction - Targets should implement this to emit instructions. + virtual void EmitInstruction(const MachineInstr *) { + assert(0 && "EmitInstruction not implemented"); + } + + virtual void EmitFunctionEntryLabel(); + + virtual void EmitMachineConstantPoolValue(MachineConstantPoolValue *MCPV); + + /// isBlockOnlyReachableByFallthough - Return true if the basic block has + /// exactly one predecessor and the control transfer mechanism between + /// the predecessor and this block is a fall-through. + virtual bool + isBlockOnlyReachableByFallthrough(const MachineBasicBlock *MBB) const; + + //===------------------------------------------------------------------===// + // Symbol Lowering Routines. + //===------------------------------------------------------------------===// + public: - /// printDeclare - This method prints a local variable declaration used by - /// debug tables. - void printDeclare(const MachineInstr *MI) const; - + /// GetTempSymbol - Return the MCSymbol corresponding to the assembler + /// temporary label with the specified stem and unique ID. + MCSymbol *GetTempSymbol(StringRef Name, unsigned ID) const; + + /// GetTempSymbol - Return an assembler temporary label with the specified + /// stem. + MCSymbol *GetTempSymbol(StringRef Name) const; + + /// GetSymbolWithGlobalValueBase - Return the MCSymbol for a symbol with /// global value name as its base, with the specified suffix, and where the /// symbol is forced to have private linkage if ForcePrivate is true. @@ -332,49 +308,131 @@ namespace llvm { MCSymbol *GetBlockAddressSymbol(const BlockAddress *BA) const; MCSymbol *GetBlockAddressSymbol(const BasicBlock *BB) const; - /// EmitBasicBlockStart - This method prints the label for the specified - /// MachineBasicBlock, an alignment (if present) and a comment describing - /// it if appropriate. - void EmitBasicBlockStart(const MachineBasicBlock *MBB) const; + //===------------------------------------------------------------------===// + // Emission Helper Routines. + //===------------------------------------------------------------------===// + public: + /// printOffset - This is just convenient handler for printing offsets. + void printOffset(int64_t Offset, raw_ostream &OS) const; + /// EmitInt8 - Emit a byte directive and value. + /// + void EmitInt8(int Value) const; - // Data emission. + /// EmitInt16 - Emit a short directive and value. + /// + void EmitInt16(int Value) const; - /// EmitGlobalConstant - Print a general LLVM constant to the .s file. - void EmitGlobalConstant(const Constant* CV, unsigned AddrSpace = 0); + /// EmitInt32 - Emit a long directive and value. + /// + void EmitInt32(int Value) const; - protected: - virtual void EmitFunctionEntryLabel(); + /// EmitLabelDifference - Emit something like ".long Hi-Lo" where the size + /// in bytes of the directive is specified by Size and Hi/Lo specify the + /// labels. This implicitly uses .set if it is available. + void EmitLabelDifference(const MCSymbol *Hi, const MCSymbol *Lo, + unsigned Size) const; + + //===------------------------------------------------------------------===// + // Dwarf Emission Helper Routines + //===------------------------------------------------------------------===// + + /// EmitSLEB128 - emit the specified signed leb128 value. + void EmitSLEB128(int Value, const char *Desc = 0) const; + + /// EmitULEB128 - emit the specified unsigned leb128 value. + void EmitULEB128(unsigned Value, const char *Desc = 0, + unsigned PadTo = 0) const; + + /// EmitCFAByte - Emit a .byte 42 directive for a DW_CFA_xxx value. + void EmitCFAByte(unsigned Val) const; + + /// EmitEncodingByte - Emit a .byte 42 directive that corresponds to an + /// encoding. If verbose assembly output is enabled, we output comments + /// describing the encoding. Desc is a string saying what the encoding is + /// specifying (e.g. "LSDA"). + void EmitEncodingByte(unsigned Val, const char *Desc = 0) const; + + /// GetSizeOfEncodedValue - Return the size of the encoding in bytes. + unsigned GetSizeOfEncodedValue(unsigned Encoding) const; + + /// EmitReference - Emit a reference to a label with a specified encoding. + /// + void EmitReference(const MCSymbol *Sym, unsigned Encoding) const; + void EmitReference(const GlobalValue *GV, unsigned Encoding) const; + + /// EmitSectionOffset - Emit the 4-byte offset of Label from the start of + /// its section. This can be done with a special directive if the target + /// supports it (e.g. cygwin) or by emitting it as an offset from a label at + /// the start of the section. + /// + /// SectionLabel is a temporary label emitted at the start of the section + /// that Label lives in. + void EmitSectionOffset(const MCSymbol *Label, + const MCSymbol *SectionLabel) const; + + //===------------------------------------------------------------------===// + // Dwarf Lowering Routines + //===------------------------------------------------------------------===// + + /// EmitFrameMoves - Emit frame instructions to describe the layout of the + /// frame. + void EmitFrameMoves(const std::vector &Moves, + MCSymbol *BaseLabel, bool isEH) const; + + + //===------------------------------------------------------------------===// + // Inline Asm Support + //===------------------------------------------------------------------===// + public: + // These are hooks that targets can override to implement inline asm + // support. These should probably be moved out of AsmPrinter someday. + + /// PrintSpecial - Print information related to the specified machine instr + /// that is independent of the operand, and may be independent of the instr + /// itself. This can be useful for portably encoding the comment character + /// or other bits of target-specific knowledge into the asmstrings. The + /// syntax used is ${:comment}. Targets can override this to add support + /// for their own strange codes. + virtual void PrintSpecial(const MachineInstr *MI, raw_ostream &OS, + const char *Code) const; + + /// PrintAsmOperand - Print the specified operand of MI, an INLINEASM + /// instruction, using the specified assembler variant. Targets should + /// override this to format as appropriate. This method can return true if + /// the operand is erroneous. + virtual bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo, + unsigned AsmVariant, const char *ExtraCode, + raw_ostream &OS); + + /// PrintAsmMemoryOperand - Print the specified operand of MI, an INLINEASM + /// instruction, using the specified assembler variant as an address. + /// Targets should override this to format as appropriate. This method can + /// return true if the operand is erroneous. + virtual bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo, + unsigned AsmVariant, + const char *ExtraCode, + raw_ostream &OS); - virtual void EmitMachineConstantPoolValue(MachineConstantPoolValue *MCPV); - - /// printOffset - This is just convenient handler for printing offsets. - void printOffset(int64_t Offset) const; - - /// isBlockOnlyReachableByFallthough - Return true if the basic block has - /// exactly one predecessor and the control transfer mechanism between - /// the predecessor and this block is a fall-through. - virtual bool isBlockOnlyReachableByFallthrough(const MachineBasicBlock *MBB) const; - private: + /// Private state for PrintSpecial() + // Assign a unique ID to this machine instruction. + mutable const MachineInstr *LastMI; + mutable unsigned LastFn; + mutable unsigned Counter; + mutable unsigned SetCounter; - /// processDebugLoc - Processes the debug information of each machine - /// instruction's DebugLoc. - void processDebugLoc(const MachineInstr *MI, bool BeforePrintingInsn); + /// EmitInlineAsm - Emit a blob of inline asm to the output streamer. + void EmitInlineAsm(StringRef Str, unsigned LocCookie) const; - void printLabelInst(const MachineInstr *MI) const; - - /// printInlineAsm - This method formats and prints the specified machine + /// EmitInlineAsm - This method formats and emits the specified machine /// instruction that is an inline asm. - void printInlineAsm(const MachineInstr *MI) const; - - /// printImplicitDef - This method prints the specified machine instruction - /// that is an implicit def. - void printImplicitDef(const MachineInstr *MI) const; - - /// printKill - This method prints the specified kill machine instruction. - void printKill(const MachineInstr *MI) const; + void EmitInlineAsm(const MachineInstr *MI) const; + //===------------------------------------------------------------------===// + // Internal Implementation Details + //===------------------------------------------------------------------===// + /// EmitVisibility - This emits visibility information about symbol, if /// this is suported by the target. void EmitVisibility(MCSymbol *Sym, unsigned Visibility) const; Modified: projects/clangbsd/contrib/llvm/include/llvm/CodeGen/FastISel.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/CodeGen/FastISel.h Tue Apr 6 18:37:25 2010 (r206279) +++ projects/clangbsd/contrib/llvm/include/llvm/CodeGen/FastISel.h Tue Apr 6 18:39:16 2010 (r206280) @@ -27,8 +27,6 @@ class MachineBasicBlock; class MachineConstantPool; class MachineFunction; class MachineFrameInfo; -class MachineModuleInfo; -class DwarfWriter; class MachineRegisterInfo; class TargetData; class TargetInstrInfo; @@ -50,8 +48,6 @@ protected: SmallSet &CatchInfoLost; #endif MachineFunction &MF; - MachineModuleInfo *MMI; - DwarfWriter *DW; MachineRegisterInfo &MRI; MachineFrameInfo &MFI; MachineConstantPool &MCP; @@ -116,8 +112,6 @@ public: protected: FastISel(MachineFunction &mf, - MachineModuleInfo *mmi, - DwarfWriter *dw, DenseMap &vm, DenseMap &bm, DenseMap &am Modified: projects/clangbsd/contrib/llvm/include/llvm/CodeGen/GCMetadataPrinter.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/CodeGen/GCMetadataPrinter.h Tue Apr 6 18:37:25 2010 (r206279) +++ projects/clangbsd/contrib/llvm/include/llvm/CodeGen/GCMetadataPrinter.h Tue Apr 6 18:39:16 2010 (r206280) @@ -27,8 +27,6 @@ namespace llvm { class GCMetadataPrinter; - class raw_ostream; - class MCAsmInfo; /// GCMetadataPrinterRegistry - The GC assembly printer registry uses all the /// defaults from Registry. @@ -63,11 +61,9 @@ namespace llvm { iterator end() { return S->end(); } /// beginAssembly/finishAssembly - Emit module metadata as assembly code. - virtual void beginAssembly(raw_ostream &OS, AsmPrinter &AP, - const MCAsmInfo &MAI); + virtual void beginAssembly(AsmPrinter &AP); - virtual void finishAssembly(raw_ostream &OS, AsmPrinter &AP, - const MCAsmInfo &MAI); + virtual void finishAssembly(AsmPrinter &AP); virtual ~GCMetadataPrinter(); }; Modified: projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineDominators.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineDominators.h Tue Apr 6 18:37:25 2010 (r206279) +++ projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineDominators.h Tue Apr 6 18:39:16 2010 (r206280) @@ -156,8 +156,13 @@ public: inline void splitBlock(MachineBasicBlock* NewBB) { DT->splitBlock(NewBB); } - - + + /// isReachableFromEntry - Return true if A is dominated by the entry + /// block of the function containing it. + bool isReachableFromEntry(MachineBasicBlock *A) { + return DT->isReachableFromEntry(A); + } + virtual void releaseMemory(); virtual void print(raw_ostream &OS, const Module*) const; Modified: projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h Tue Apr 6 18:37:25 2010 (r206279) +++ projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h Tue Apr 6 18:39:16 2010 (r206280) @@ -14,12 +14,9 @@ #ifndef LLVM_CODEGEN_MACHINEFRAMEINFO_H #define LLVM_CODEGEN_MACHINEFRAMEINFO_H -#include "llvm/ADT/BitVector.h" -#include "llvm/ADT/DenseMap.h" #include "llvm/ADT/SmallVector.h" #include "llvm/System/DataTypes.h" #include -#include #include namespace llvm { @@ -27,26 +24,21 @@ class raw_ostream; class TargetData; class TargetRegisterClass; class Type; -class MachineModuleInfo; class MachineFunction; class MachineBasicBlock; class TargetFrameInfo; +class BitVector; /// The CalleeSavedInfo class tracks the information need to locate where a /// callee saved register in the current frame. class CalleeSavedInfo { - -private: unsigned Reg; const TargetRegisterClass *RegClass; int FrameIdx; public: CalleeSavedInfo(unsigned R, const TargetRegisterClass *RC, int FI = 0) - : Reg(R) - , RegClass(RC) - , FrameIdx(FI) - {} + : Reg(R), RegClass(RC), FrameIdx(FI) {} // Accessors. unsigned getReg() const { return Reg; } @@ -188,13 +180,6 @@ class MachineFrameInfo { /// spill slots. SmallVector SpillObjects; - /// MMI - This field is set (via setMachineModuleInfo) by a module info - /// consumer (ex. DwarfWriter) to indicate that frame layout information - /// should be acquired. Typically, it's the responsibility of the target's - /// TargetRegisterInfo prologue/epilogue emitting code to inform - /// MachineModuleInfo of frame layouts. - MachineModuleInfo *MMI; - /// TargetFrameInfo - Target information about frame layout. /// const TargetFrameInfo &TFI; @@ -208,7 +193,6 @@ public: StackProtectorIdx = -1; MaxCallFrameSize = 0; CSIValid = false; - MMI = 0; } /// hasStackObjects - Return true if there are any stack objects in this @@ -451,14 +435,6 @@ public: /// method always returns an empty set. BitVector getPristineRegs(const MachineBasicBlock *MBB) const; - /// getMachineModuleInfo - Used by a prologue/epilogue - /// emitter (TargetRegisterInfo) to provide frame layout information. - MachineModuleInfo *getMachineModuleInfo() const { return MMI; } - - /// setMachineModuleInfo - Used by a meta info consumer (DwarfWriter) to - /// indicate that frame layout information should be gathered. - void setMachineModuleInfo(MachineModuleInfo *mmi) { MMI = mmi; } - /// print - Used by the MachineFunction printer to print information about /// stack objects. Implemented in MachineFunction.cpp /// Modified: projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineFunction.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineFunction.h Tue Apr 6 18:37:25 2010 (r206279) +++ projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineFunction.h Tue Apr 6 18:39:16 2010 (r206280) @@ -32,6 +32,7 @@ class MachineRegisterInfo; class MachineFrameInfo; class MachineConstantPool; class MachineJumpTableInfo; +class MachineModuleInfo; class MCContext; class Pass; class TargetMachine; @@ -72,7 +73,8 @@ class MachineFunction { Function *Fn; const TargetMachine &Target; MCContext &Ctx; - + MachineModuleInfo &MMI; + // RegInfo - Information about each register in use in the function. MachineRegisterInfo *RegInfo; @@ -107,8 +109,8 @@ class MachineFunction { typedef ilist BasicBlockListType; BasicBlockListType BasicBlocks; - // Default debug location. Used to print out the debug label at the beginning - // of a function. + /// Default debug location. Used to print out the debug label at the beginning + /// of a function. DebugLoc DefaultDebugLoc; /// FunctionNumber - This provides a unique ID for each function emitted in @@ -116,17 +118,17 @@ class MachineFunction { /// unsigned FunctionNumber; - // The alignment of the function. + /// The alignment of the function. unsigned Alignment; MachineFunction(const MachineFunction &); // DO NOT IMPLEMENT void operator=(const MachineFunction&); // DO NOT IMPLEMENT - public: MachineFunction(Function *Fn, const TargetMachine &TM, unsigned FunctionNum, - MCContext &Ctx); + MachineModuleInfo &MMI); ~MachineFunction(); + MachineModuleInfo &getMMI() const { return MMI; } MCContext &getContext() const { return Ctx; } /// getFunction - Return the LLVM function that this machine code represents Modified: projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineFunctionAnalysis.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineFunctionAnalysis.h Tue Apr 6 18:37:25 2010 (r206279) +++ projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineFunctionAnalysis.h Tue Apr 6 18:39:16 2010 (r206280) @@ -39,7 +39,7 @@ public: CodeGenOpt::Level getOptLevel() const { return OptLevel; } private: - virtual bool doInitialization(Module &) { NextFnNum = 1; return false; } + virtual bool doInitialization(Module &M); virtual bool runOnFunction(Function &F); virtual void releaseMemory(); virtual void getAnalysisUsage(AnalysisUsage &AU) const; Modified: projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h Tue Apr 6 18:37:25 2010 (r206279) +++ projects/clangbsd/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h Tue Apr 6 18:39:16 2010 (r206280) @@ -100,6 +100,9 @@ class MachineModuleInfo : public Immutab /// Context - This is the MCContext used for the entire code generator. MCContext Context; + /// TheModule - This is the LLVM Module being worked on. + Module *TheModule; + /// ObjFileMMI - This is the object-file-format-specific implementation of /// MachineModuleInfoImpl, which lets targets accumulate whatever info they /// want. @@ -176,6 +179,9 @@ public: const MCContext &getContext() const { return Context; } MCContext &getContext() { return Context; } + void setModule(Module *M) { TheModule = M; } + Module *getModule() const { return TheModule; } + /// getInfo - Keep track of various per-function pieces of information for /// backends that would like to do so. /// Modified: projects/clangbsd/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h Tue Apr 6 18:37:25 2010 (r206279) +++ projects/clangbsd/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h Tue Apr 6 18:39:16 2010 (r206280) @@ -27,7 +27,6 @@ namespace llvm { class SUnit; class MachineConstantPool; class MachineFunction; - class MachineModuleInfo; class MachineRegisterInfo; class MachineInstr; class TargetRegisterInfo; Modified: projects/clangbsd/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h Tue Apr 6 18:37:25 2010 (r206279) +++ projects/clangbsd/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h Tue Apr 6 18:39:16 2010 (r206280) @@ -29,11 +29,9 @@ namespace llvm { class AliasAnalysis; -class DwarfWriter; class FunctionLoweringInfo; class MachineConstantPoolValue; class MachineFunction; -class MachineModuleInfo; class MDNode; class SDNodeOrdering; class SDDbgValue; @@ -122,9 +120,7 @@ class SelectionDAG { TargetLowering &TLI; MachineFunction *MF; FunctionLoweringInfo &FLI; - MachineModuleInfo *MMI; - DwarfWriter *DW; - LLVMContext* Context; + LLVMContext *Context; /// EntryNode - The starting token. SDNode EntryNode; @@ -182,7 +178,7 @@ public: /// init - Prepare this SelectionDAG to process code in the given /// MachineFunction. /// - void init(MachineFunction &mf, MachineModuleInfo *mmi, DwarfWriter *dw); + void init(MachineFunction &mf); /// clear - Clear state and free memory necessary to make this /// SelectionDAG ready to process a new block. @@ -193,8 +189,6 @@ public: const TargetMachine &getTarget() const; TargetLowering &getTargetLoweringInfo() const { return TLI; } FunctionLoweringInfo &getFunctionLoweringInfo() const { return FLI; } - MachineModuleInfo *getMachineModuleInfo() const { return MMI; } - DwarfWriter *getDwarfWriter() const { return DW; } LLVMContext *getContext() const {return Context; } /// viewGraph - Pop up a GraphViz/gv window with the DAG rendered using 'dot'. @@ -532,17 +526,17 @@ public: SDValue getStackArgumentTokenFactor(SDValue Chain); SDValue getMemcpy(SDValue Chain, DebugLoc dl, SDValue Dst, SDValue Src, - SDValue Size, unsigned Align, bool AlwaysInline, + SDValue Size, unsigned Align, bool isVol, bool AlwaysInline, const Value *DstSV, uint64_t DstSVOff, const Value *SrcSV, uint64_t SrcSVOff); SDValue getMemmove(SDValue Chain, DebugLoc dl, SDValue Dst, SDValue Src, - SDValue Size, unsigned Align, + SDValue Size, unsigned Align, bool isVol, const Value *DstSV, uint64_t DstOSVff, const Value *SrcSV, uint64_t SrcSVOff); SDValue getMemset(SDValue Chain, DebugLoc dl, SDValue Dst, SDValue Src, - SDValue Size, unsigned Align, + SDValue Size, unsigned Align, bool isVol, const Value *DstSV, uint64_t DstSVOff); /// getSetCC - Helper function to make it easier to build SetCC's if you just Modified: projects/clangbsd/contrib/llvm/include/llvm/CodeGen/SelectionDAGISel.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/CodeGen/SelectionDAGISel.h Tue Apr 6 18:37:25 2010 (r206279) +++ projects/clangbsd/contrib/llvm/include/llvm/CodeGen/SelectionDAGISel.h Tue Apr 6 18:39:16 2010 (r206280) @@ -29,8 +29,6 @@ namespace llvm { class MachineBasicBlock; class MachineFunction; class MachineInstr; - class MachineModuleInfo; - class DwarfWriter; class TargetLowering; class TargetInstrInfo; class FunctionLoweringInfo; @@ -284,8 +282,6 @@ private: const SDValue *Ops, unsigned NumOps, unsigned EmitNodeInfo); void SelectAllBasicBlocks(Function &Fn, MachineFunction &MF, - MachineModuleInfo *MMI, - DwarfWriter *DW, const TargetInstrInfo &TII); void FinishBasicBlock(); Modified: projects/clangbsd/contrib/llvm/include/llvm/IntrinsicInst.h ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/IntrinsicInst.h Tue Apr 6 18:37:25 2010 (r206279) +++ projects/clangbsd/contrib/llvm/include/llvm/IntrinsicInst.h Tue Apr 6 18:39:16 2010 (r206280) @@ -133,6 +133,13 @@ namespace llvm { return getAlignmentCst()->getZExtValue(); } + ConstantInt *getVolatileCst() const { + return cast(const_cast(getOperand(5))); + } + bool isVolatile() const { + return getVolatileCst()->getZExtValue() != 0; + } + /// getDest - This is just like getRawDest, but it strips off any cast /// instructions that feed it, giving the original input. The returned /// value is guaranteed to be a pointer. @@ -155,7 +162,11 @@ namespace llvm { void setAlignment(Constant* A) { setOperand(4, A); } - + + void setVolatile(Constant* V) { + setOperand(5, V); + } + const Type *getAlignmentType() const { return getOperand(4)->getType(); } Modified: projects/clangbsd/contrib/llvm/include/llvm/Intrinsics.td ============================================================================== --- projects/clangbsd/contrib/llvm/include/llvm/Intrinsics.td Tue Apr 6 18:37:25 2010 (r206279) +++ projects/clangbsd/contrib/llvm/include/llvm/Intrinsics.td Tue Apr 6 18:39:16 2010 (r206280) @@ -224,16 +224,16 @@ def int_stackprotector : Intrinsic<[], // def int_memcpy : Intrinsic<[], *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Apr 6 19:20:31 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 76DE7106566C; Tue, 6 Apr 2010 19:20:31 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 676AC8FC08; Tue, 6 Apr 2010 19:20:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o36JKVvk056041; Tue, 6 Apr 2010 19:20:31 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o36JKVsl056039; Tue, 6 Apr 2010 19:20:31 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201004061920.o36JKVsl056039@svn.freebsd.org> From: Nathan Whitehorn Date: Tue, 6 Apr 2010 19:20:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206284 - projects/ppc64/sys/boot/powerpc/ps3 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Apr 2010 19:20:31 -0000 Author: nwhitehorn Date: Tue Apr 6 19:20:31 2010 New Revision: 206284 URL: http://svn.freebsd.org/changeset/base/206284 Log: Add a PPC64 ELF loader stub to unbreak the build. The changes requiring this accidentally got pulled in during my MFC. Submitted by: Andreas Tobler Added: projects/ppc64/sys/boot/powerpc/ps3/ppc64_elf_freebsd.c Added: projects/ppc64/sys/boot/powerpc/ps3/ppc64_elf_freebsd.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ppc64/sys/boot/powerpc/ps3/ppc64_elf_freebsd.c Tue Apr 6 19:20:31 2010 (r206284) @@ -0,0 +1,100 @@ +/*- + * Copyright (c) 2001 Benno Rice + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD: projects/ppc64/sys/boot/ofw/libofw/ppc64_elf_freebsd.c 197113 2009-09-12 05:39:51Z nwhitehorn $"); + +#define __ELF_WORD_SIZE 64 + +#include +#include + +#include +#include + +#include + +#include "bootstrap.h" + +extern char end[]; +extern vm_offset_t reloc; /* From /conf.c */ + +int +ppc64_elf_loadfile(char *filename, u_int64_t dest, + struct preloaded_file **result) +{ + int r; + + r = __elfN(loadfile)(filename, dest, result); + if (r != 0) + return (r); + + /* + * No need to sync the icache for modules: this will + * be done by the kernel after relocation. + */ + if (!strcmp((*result)->f_type, "elf kernel")) + __syncicache((void *) (*result)->f_addr, (*result)->f_size); + return (0); +} + +int +ppc64_elf_exec(struct preloaded_file *fp) +{ + struct file_metadata *fmp; + vm_offset_t mdp; + Elf_Ehdr *e; + int error; + intptr_t entry; + + if ((fmp = file_findmetadata(fp, MODINFOMD_ELFHDR)) == NULL) { + return(EFTYPE); + } + e = (Elf_Ehdr *)&fmp->md_data; + + /* Handle function descriptor */ + entry = *(uint64_t *)e->e_entry; + + if ((error = md_load64(fp->f_args, &mdp)) != 0) + return (error); + + printf("Kernel entry at 0x%lx ...\n", entry); + + dev_cleanup(); + +#if 0 + OF_chain((void *)reloc, end - (char *)reloc, (void *)entry, + (void *)mdp, sizeof(mdp)); +#endif + + panic("exec returned"); +} + +struct file_format ppc_elf64 = +{ + ppc64_elf_loadfile, + ppc64_elf_exec +}; From owner-svn-src-projects@FreeBSD.ORG Tue Apr 6 20:09:13 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 558CC106566B; Tue, 6 Apr 2010 20:09:13 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 467708FC18; Tue, 6 Apr 2010 20:09:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o36K9Dx4066836; Tue, 6 Apr 2010 20:09:13 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o36K9Dao066834; Tue, 6 Apr 2010 20:09:13 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <201004062009.o36K9Dao066834@svn.freebsd.org> From: Roman Divacky Date: Tue, 6 Apr 2010 20:09:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206286 - projects/clangbsd/gnu/lib/libstdc++ X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Apr 2010 20:09:13 -0000 Author: rdivacky Date: Tue Apr 6 20:09:13 2010 New Revision: 206286 URL: http://svn.freebsd.org/changeset/base/206286 Log: libstdc++ builds fine on 32bit too Modified: projects/clangbsd/gnu/lib/libstdc++/Makefile Modified: projects/clangbsd/gnu/lib/libstdc++/Makefile ============================================================================== --- projects/clangbsd/gnu/lib/libstdc++/Makefile Tue Apr 6 19:25:58 2010 (r206285) +++ projects/clangbsd/gnu/lib/libstdc++/Makefile Tue Apr 6 20:09:13 2010 (r206286) @@ -21,10 +21,6 @@ CFLAGS+= -I${GCCLIB}/include -I${SRCDIR} CFLAGS+= -frandom-seed=RepeatabilityConsideredGood CXXFLAGS+= -fno-implicit-templates -ffunction-sections -fdata-sections \ -Wno-deprecated -.if ${CC:M*lib32*} -# See: http://llvm.org/bugs/show_bug.cgi?id=6780 -CXX:=${CXX:C/^c\+\+|^clang\+\+/g++/} -.endif PO_CXXFLAGS= ${CXXFLAGS:N-ffunction-sections} DPADD= ${LIBM} From owner-svn-src-projects@FreeBSD.ORG Wed Apr 7 15:09:36 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7C622106564A; Wed, 7 Apr 2010 15:09:36 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 469478FC23; Wed, 7 Apr 2010 15:09:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o37F9aAk031127; Wed, 7 Apr 2010 15:09:36 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o37F9aPh031125; Wed, 7 Apr 2010 15:09:36 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201004071509.o37F9aPh031125@svn.freebsd.org> From: Nathan Whitehorn Date: Wed, 7 Apr 2010 15:09:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206356 - projects/ppc64/sys/modules X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Apr 2010 15:09:36 -0000 Author: nwhitehorn Date: Wed Apr 7 15:09:35 2010 New Revision: 206356 URL: http://svn.freebsd.org/changeset/base/206356 Log: Fix a mismerge in the modules Makefile. Submitted by: Justin Hibbits Modified: projects/ppc64/sys/modules/Makefile Modified: projects/ppc64/sys/modules/Makefile ============================================================================== --- projects/ppc64/sys/modules/Makefile Wed Apr 7 14:59:07 2010 (r206355) +++ projects/ppc64/sys/modules/Makefile Wed Apr 7 15:09:35 2010 (r206356) @@ -314,7 +314,7 @@ SUBDIR= ${_3dfx} \ zlib \ .if ${MACHINE_ARCH} != "powerpc" && ${MACHINE_ARCH} != "powerpc64" && \ - && ${MACHINE_ARCH} != "arm" && ${MACHINE_ARCH} != "mips" + ${MACHINE_ARCH} != "arm" && ${MACHINE_ARCH} != "mips" _syscons= syscons _vpo= vpo .endif From owner-svn-src-projects@FreeBSD.ORG Wed Apr 7 18:18:34 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8CD19106566B; Wed, 7 Apr 2010 18:18:34 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 633378FC13; Wed, 7 Apr 2010 18:18:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o37IIYPW073943; Wed, 7 Apr 2010 18:18:34 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o37IIYcM073942; Wed, 7 Apr 2010 18:18:34 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <201004071818.o37IIYcM073942@svn.freebsd.org> From: Rui Paulo Date: Wed, 7 Apr 2010 18:18:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r206377 - projects/efi X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Apr 2010 18:18:34 -0000 Author: rpaulo Date: Wed Apr 7 18:18:33 2010 New Revision: 206377 URL: http://svn.freebsd.org/changeset/base/206377 Log: Code moved to HEAD. Deleted: projects/efi/