diff --git a/lib/Target/SparcV9/SparcV9TargetMachine.cpp b/lib/Target/SparcV9/SparcV9TargetMachine.cpp
index 83d1566..e84a6eb 100644
--- a/lib/Target/SparcV9/SparcV9TargetMachine.cpp
+++ b/lib/Target/SparcV9/SparcV9TargetMachine.cpp
@@ -61,7 +61,7 @@
 // that implements the Sparc backend. (the llvm/CodeGen/Sparc.h interface)
 //----------------------------------------------------------------------------
 
-TargetMachine *allocateSparcTargetMachine(unsigned Configuration) {
+TargetMachine *allocateSparcTargetMachine(const Module &M) {
   return new UltraSparc();
 }
 
diff --git a/lib/Target/X86/X86TargetMachine.cpp b/lib/Target/X86/X86TargetMachine.cpp
index 6a88390..60f8bbc 100644
--- a/lib/Target/X86/X86TargetMachine.cpp
+++ b/lib/Target/X86/X86TargetMachine.cpp
@@ -6,6 +6,7 @@
 
 #include "X86TargetMachine.h"
 #include "X86.h"
+#include "llvm/Module.h"
 #include "llvm/PassManager.h"
 #include "llvm/Target/TargetMachineImpls.h"
 #include "llvm/CodeGen/MachineFunction.h"
@@ -13,7 +14,6 @@
 #include "llvm/Transforms/Scalar.h"
 #include "Support/CommandLine.h"
 #include "Support/Statistic.h"
-#include <iostream>
 
 namespace {
   cl::opt<bool> NoLocalRA("disable-local-ra",
@@ -27,21 +27,21 @@
 // allocateX86TargetMachine - Allocate and return a subclass of TargetMachine
 // that implements the X86 backend.
 //
-TargetMachine *allocateX86TargetMachine(unsigned Configuration) {
-  return new X86TargetMachine(Configuration);
+TargetMachine *allocateX86TargetMachine(const Module &M) {
+  return new X86TargetMachine(M);
 }
 
 
 /// X86TargetMachine ctor - Create an ILP32 architecture model
 ///
-X86TargetMachine::X86TargetMachine(unsigned Config)
+X86TargetMachine::X86TargetMachine(const Module &M)
   : TargetMachine("X86", 
-		  (Config & TM::EndianMask) == TM::LittleEndian,
-		  (Config & TM::PtrSizeMask) == TM::PtrSize64 ? 8 : 4,
-		  (Config & TM::PtrSizeMask) == TM::PtrSize64 ? 8 : 4,
-		  (Config & TM::PtrSizeMask) == TM::PtrSize64 ? 8 : 4,
-                  4, (Config & TM::PtrSizeMask) == TM::PtrSize64 ? 8 : 4),
-  FrameInfo(TargetFrameInfo::StackGrowsDown, 8/*16 for SSE*/, 4) {
+		  M.getEndianness() != Module::BigEndian,
+                  M.getPointerSize() != Module::Pointer64 ? 4 : 8,
+                  M.getPointerSize() != Module::Pointer64 ? 4 : 8,
+                  M.getPointerSize() != Module::Pointer64 ? 4 : 8,
+                  4, M.getPointerSize() != Module::Pointer64 ? 4 : 8),
+    FrameInfo(TargetFrameInfo::StackGrowsDown, 8/*16 for SSE*/, 4) {
 }
 
 
diff --git a/lib/Target/X86/X86TargetMachine.h b/lib/Target/X86/X86TargetMachine.h
index 631b42a..07c4608 100644
--- a/lib/Target/X86/X86TargetMachine.h
+++ b/lib/Target/X86/X86TargetMachine.h
@@ -16,7 +16,7 @@
   X86InstrInfo InstrInfo;
   TargetFrameInfo FrameInfo;
 public:
-  X86TargetMachine(unsigned Configuration);
+  X86TargetMachine(const Module &M);
 
   virtual const X86InstrInfo     &getInstrInfo() const { return InstrInfo; }
   virtual const TargetFrameInfo  &getFrameInfo() const { return FrameInfo; }
