diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp
index 275d4a0..f4ec6af 100644
--- a/lib/Target/X86/X86ISelLowering.cpp
+++ b/lib/Target/X86/X86ISelLowering.cpp
@@ -4560,6 +4560,11 @@
   // address value and run time information about the CPU.
   if ((Align & 3) != 0 ||
       (I && I->getValue() > Subtarget->getMaxInlineSizeThreshold())) {
+
+    // Check to see if there is a specialized entry-point for memory zeroing.
+    const char *bzeroEntry = Subtarget->getBZeroEntry();
+    ConstantSDNode *V = dyn_cast<ConstantSDNode>(Op.getOperand(2));
+
     MVT::ValueType IntPtr = getPointerTy();
     const Type *IntPtrTy = getTargetData()->getIntPtrType();
     TargetLowering::ArgListTy Args; 
@@ -4567,15 +4572,20 @@
     Entry.Node = Op.getOperand(1);
     Entry.Ty = IntPtrTy;
     Args.push_back(Entry);
-    // Extend the unsigned i8 argument to be an int value for the call.
-    Entry.Node = DAG.getNode(ISD::ZERO_EXTEND, MVT::i32, Op.getOperand(2));
-    Entry.Ty = IntPtrTy;
-    Args.push_back(Entry);
+
+    if (!bzeroEntry) {
+      // Extend the unsigned i8 argument to be an int value for the call.
+      Entry.Node = DAG.getNode(ISD::ZERO_EXTEND, MVT::i32, Op.getOperand(2));
+      Entry.Ty = IntPtrTy;
+      Args.push_back(Entry);
+    }
+
     Entry.Node = Op.getOperand(3);
     Args.push_back(Entry);
+    const char *Name = bzeroEntry ? bzeroEntry : "memset";
     std::pair<SDOperand,SDOperand> CallResult =
       LowerCallTo(Chain, Type::VoidTy, false, false, false, CallingConv::C,
-                  false, DAG.getExternalSymbol("memset", IntPtr), Args, DAG);
+                  false, DAG.getExternalSymbol(Name, IntPtr), Args, DAG);
     return CallResult.second;
   }
 
diff --git a/lib/Target/X86/X86Subtarget.cpp b/lib/Target/X86/X86Subtarget.cpp
index 483b8a4..56bb7ac 100644
--- a/lib/Target/X86/X86Subtarget.cpp
+++ b/lib/Target/X86/X86Subtarget.cpp
@@ -53,6 +53,20 @@
   return false;
 }
 
+/// This function returns the name of a function which has an interface
+/// like the non-standard bzero function, if such a function exists on
+/// the current subtarget and it is considered prefereable over
+/// memset with zero passed as the second argument. Otherwise it
+/// returns null.
+const char *X86Subtarget::getBZeroEntry() const {
+
+  // Darwin 10 has a __bzero entry point for this purpose.
+  if (getDarwinVers() >= 10)
+    return "__bzero";
+
+  return 0;
+}
+
 /// GetCpuIDAndInfo - Execute the specified cpuid and return the 4 values in the
 /// specified arguments.  If we can't run cpuid on the host, return true.
 bool X86::GetCpuIDAndInfo(unsigned value, unsigned *rEAX, unsigned *rEBX,
diff --git a/lib/Target/X86/X86Subtarget.h b/lib/Target/X86/X86Subtarget.h
index 6488d47..c91088d 100644
--- a/lib/Target/X86/X86Subtarget.h
+++ b/lib/Target/X86/X86Subtarget.h
@@ -171,6 +171,12 @@
   bool GVRequiresExtraLoad(const GlobalValue* GV, const TargetMachine& TM,
                            bool isDirectCall) const;
 
+  /// This function returns the name of a function which has an interface
+  /// like the non-standard bzero function, if such a function exists on
+  /// the current subtarget and it is considered prefereable over
+  /// memset with zero passed as the second argument. Otherwise it
+  /// returns null.
+  const char *getBZeroEntry() const;
 };
 
 namespace X86 {
