diff --git a/lib/Target/SparcV9/MappingInfo.cpp b/lib/Target/SparcV9/MappingInfo.cpp
index 999b603..5f496bf 100644
--- a/lib/Target/SparcV9/MappingInfo.cpp
+++ b/lib/Target/SparcV9/MappingInfo.cpp
@@ -132,7 +132,7 @@
 /// Function. MachineBasicBlocks are numbered from begin() to end()
 /// in the Function's corresponding MachineFunction. Each successive
 /// MachineBasicBlock increments the numbering by the number of instructions
-/// it contains. The side-effect of this method is to fill in the paramete
+/// it contains. The side-effect of this method is to fill in the parameter
 /// KEY with the mapping of MachineBasicBlocks to numbers. KEY
 /// is keyed on MachineInstrs, so each MachineBasicBlock is represented
 /// therein by its first MachineInstr.
diff --git a/lib/Target/SparcV9/SparcV9CodeEmitter.cpp b/lib/Target/SparcV9/SparcV9CodeEmitter.cpp
index 70c41e1..819b862 100644
--- a/lib/Target/SparcV9/SparcV9CodeEmitter.cpp
+++ b/lib/Target/SparcV9/SparcV9CodeEmitter.cpp
@@ -366,10 +366,11 @@
 
   RestoreRegisters(DoubleFP, FSR, FPRS, CCR);
 
-  // Change the return address to reexecute the restore, then the jump. However,
-  // we can't just modify %i7 here, because we return to the function that will
-  // restore the floating-point registers for us. Thus, we just return the value
-  // we want it to be, and the parent will take care of setting %i7 correctly.
+  // Change the return address to re-execute the restore, then the jump.
+  // However, we can't just modify %i7 here, because we return to the function
+  // that will restore the floating-point registers for us. Thus, we just return
+  // the value we want it to be, and the parent will take care of setting %i7
+  // correctly.
   DEBUG(std::cerr << "Callback returning to: 0x"
                   << std::hex << (CameFrom-Offset-12) << "\n");
 #if defined(sparc) || defined(__sparc__) || defined(__sparcv9)
@@ -482,7 +483,7 @@
       // only numbered 0-31, hence can already fit into 5 bits (and 6)
       DEBUG(std::cerr << "FP single reg, returning: " << fakeReg << "\n");
     } else if (regType == UltraSparcRegInfo::FPDoubleRegType) {
-      // FIXME: This assumes that we only have 5-bit register fiels!
+      // FIXME: This assumes that we only have 5-bit register fields!
       // From Sparc Manual, page 40.
       // The bit layout becomes: b[4], b[3], b[2], b[1], b[5]
       fakeReg |= (fakeReg >> 5) & 1;
@@ -624,7 +625,7 @@
         int64_t CallInstTarget = (rv - CurrPC) >> 2;
         if (CallInstTarget >= (1<<29) || CallInstTarget <= -(1<<29)) {
           DEBUG(std::cerr << "Making far call!\n");
-          // addresss is out of bounds for the 30-bit call,
+          // address is out of bounds for the 30-bit call,
           // make an indirect jump-and-link
           emitFarCall(rv);
           // this invalidates the instruction so that the call with an incorrect
diff --git a/lib/Target/SparcV9/SparcV9RegClassInfo.cpp b/lib/Target/SparcV9/SparcV9RegClassInfo.cpp
index 8f51264..6248a83 100644
--- a/lib/Target/SparcV9/SparcV9RegClassInfo.cpp
+++ b/lib/Target/SparcV9/SparcV9RegClassInfo.cpp
@@ -261,7 +261,7 @@
     return;
   } else { 
 
-    // if we didn't find a color becuase the LR was single precision or
+    // if we didn't find a color because the LR was single precision or
     // all f32-f63 range is filled, we try to allocate a register from
     // the f0 - f31 region 
 
@@ -292,7 +292,7 @@
   }
 
   if (ColorFound >= 0) {
-    LR->setColor(ColorFound);         // first color found in prefered order
+    LR->setColor(ColorFound);         // first color found in preferred order
     LR->markForSaveAcrossCalls();  
   } else {
     // we are here because no color could be found
diff --git a/lib/Target/SparcV9/SparcV9RegInfo.cpp b/lib/Target/SparcV9/SparcV9RegInfo.cpp
index a46af22..8dde4e9 100644
--- a/lib/Target/SparcV9/SparcV9RegInfo.cpp
+++ b/lib/Target/SparcV9/SparcV9RegInfo.cpp
@@ -466,7 +466,7 @@
       }
       else {
 
-	// Now the arg is coming on stack. Since the LR recieved a register,
+	// Now the arg is coming on stack. Since the LR received a register,
 	// we just have to load the arg on stack into that register
 	//
         const TargetFrameInfo& frameInfo = target.getFrameInfo();
@@ -522,7 +522,7 @@
       else {
 
 	// Now the arg is coming on stack. Since the LR did NOT 
-	// recieved a register as well, it is allocated a stack position. We
+	// received a register as well, it is allocated a stack position. We
 	// can simply change the stack position of the LR. We can do this,
 	// since this method is called before any other method that makes
 	// uses of the stack pos of the LR (e.g., updateMachineInstr)
diff --git a/lib/Target/X86/FloatingPoint.cpp b/lib/Target/X86/FloatingPoint.cpp
index f8f483f..23d4e17 100644
--- a/lib/Target/X86/FloatingPoint.cpp
+++ b/lib/Target/X86/FloatingPoint.cpp
@@ -549,7 +549,7 @@
 
 
 /// handleSpecialFP - Handle special instructions which behave unlike other
-/// floating point instructions.  This is primarily inteaded for use by pseudo
+/// floating point instructions.  This is primarily intended for use by pseudo
 /// instructions.
 ///
 void FPS::handleSpecialFP(MachineBasicBlock::iterator &I) {
diff --git a/lib/Target/X86/InstSelectSimple.cpp b/lib/Target/X86/InstSelectSimple.cpp
index cc57b0e..9e4e499 100644
--- a/lib/Target/X86/InstSelectSimple.cpp
+++ b/lib/Target/X86/InstSelectSimple.cpp
@@ -1214,7 +1214,7 @@
     return;
   }
   case cByte: case cShort: case cInt:
-    break;          // Small integerals, handled below...
+    break;          // Small integrals, handled below...
   default: assert(0 && "Unknown class!");
   }
 
diff --git a/lib/Target/X86/X86FloatingPoint.cpp b/lib/Target/X86/X86FloatingPoint.cpp
index f8f483f..23d4e17 100644
--- a/lib/Target/X86/X86FloatingPoint.cpp
+++ b/lib/Target/X86/X86FloatingPoint.cpp
@@ -549,7 +549,7 @@
 
 
 /// handleSpecialFP - Handle special instructions which behave unlike other
-/// floating point instructions.  This is primarily inteaded for use by pseudo
+/// floating point instructions.  This is primarily intended for use by pseudo
 /// instructions.
 ///
 void FPS::handleSpecialFP(MachineBasicBlock::iterator &I) {
diff --git a/lib/Target/X86/X86ISelSimple.cpp b/lib/Target/X86/X86ISelSimple.cpp
index cc57b0e..9e4e499 100644
--- a/lib/Target/X86/X86ISelSimple.cpp
+++ b/lib/Target/X86/X86ISelSimple.cpp
@@ -1214,7 +1214,7 @@
     return;
   }
   case cByte: case cShort: case cInt:
-    break;          // Small integerals, handled below...
+    break;          // Small integrals, handled below...
   default: assert(0 && "Unknown class!");
   }
 
