diff --git a/gas/ChangeLog b/gas/ChangeLog
index 89a61d013a18e346fc74fc082cdf088af9e6568b..70d17e44a2c3e7dded72d3bf0f53d6a28fa7ae2d 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,15 @@
+2009-08-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* config/tc-i386.c (cpu_arch): Use PROCESSOR_L1OM on "l1om".
+	(i386_align_code): Handle PROCESSOR_L1OM.
+	(check_cpu_arch_compatible): Fix a typo in comments.
+	(set_cpu_arch): Check cpu_arch_isa instead of
+	cpu_arch_isa_flags.bitfield.cpul1om.
+	(i386_mach): Likewise.
+	(i386_target_format): Likewise.
+
+	* config/tc-i386.h (processor_type): Add PROCESSOR_L1OM.
+
 2009-08-26  DJ Delorie  <dj@redhat.com>
 
 	* config/tc-mep.c (md_pcrel_from_section): Handle any other
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 86e55bf9991696c2985c158056afffefee24d82c..2b614b0de6c6c15007b298c8422fc2dec7b5156e 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -577,7 +577,7 @@ static const arch_entry cpu_arch[] =
     CPU_CORE2_FLAGS },
   { "corei7", PROCESSOR_COREI7,
     CPU_COREI7_FLAGS },
-  { "l1om", PROCESSOR_GENERIC64,
+  { "l1om", PROCESSOR_L1OM,
     CPU_L1OM_FLAGS },
   { "k6", PROCESSOR_K6,
     CPU_K6_FLAGS },
@@ -995,6 +995,7 @@ i386_align_code (fragS *fragP, int count)
 	    case PROCESSOR_CORE:
 	    case PROCESSOR_CORE2:
 	    case PROCESSOR_COREI7:
+	    case PROCESSOR_L1OM:
 	    case PROCESSOR_GENERIC64:
 	      patt = alt_long_patt;
 	      break;
@@ -1043,6 +1044,7 @@ i386_align_code (fragS *fragP, int count)
 	    case PROCESSOR_CORE:
 	    case PROCESSOR_CORE2:
 	    case PROCESSOR_COREI7:
+	    case PROCESSOR_L1OM:
 	      if (fragP->tc_frag_data.isa_flags.bitfield.cpui686)
 		patt = alt_long_patt;
 	      else
@@ -1977,7 +1979,7 @@ check_cpu_arch_compatible (const char *name ATTRIBUTE_UNUSED,
 	arch = default_arch;
     }
 
-  /* If we are targeting Intel L1OM, wm must enable it.  */
+  /* If we are targeting Intel L1OM, we must enable it.  */
   if (get_elf_backend_data (stdoutput)->elf_machine_code != EM_L1OM
       || new.bitfield.cpul1om)
     return;
@@ -2085,7 +2087,7 @@ set_cpu_arch (int dummy ATTRIBUTE_UNUSED)
 enum bfd_architecture
 i386_arch (void)
 {
-  if (cpu_arch_isa_flags.bitfield.cpul1om)
+  if (cpu_arch_isa == PROCESSOR_L1OM)
     {
       if (OUTPUT_FLAVOR != bfd_target_elf_flavour
 	  || flag_code != CODE_64BIT)
@@ -2101,7 +2103,7 @@ i386_mach ()
 {
   if (!strcmp (default_arch, "x86_64"))
     {
-      if (cpu_arch_isa_flags.bitfield.cpul1om)
+      if (cpu_arch_isa == PROCESSOR_L1OM)
 	{
 	  if (OUTPUT_FLAVOR != bfd_target_elf_flavour)
 	    as_fatal (_("Intel L1OM is 64bit ELF only"));
@@ -8102,7 +8104,7 @@ i386_target_format (void)
 	    object_64bit = 1;
 	    use_rela_relocations = 1;
 	  }
-	if (cpu_arch_isa_flags.bitfield.cpul1om)
+	if (cpu_arch_isa == PROCESSOR_L1OM)
 	  {
 	    if (flag_code != CODE_64BIT)
 	      as_fatal (_("Intel L1OM is 64bit only"));
diff --git a/gas/config/tc-i386.h b/gas/config/tc-i386.h
index 3d89a32c19001e09b895d453c5c88e87ffc52011..d10df53d5c1caaf09be95b3241b05c53fe12f8ce 100644
--- a/gas/config/tc-i386.h
+++ b/gas/config/tc-i386.h
@@ -215,6 +215,7 @@ enum processor_type
   PROCESSOR_CORE,
   PROCESSOR_CORE2,
   PROCESSOR_COREI7,
+  PROCESSOR_L1OM,
   PROCESSOR_K6,
   PROCESSOR_ATHLON,
   PROCESSOR_K8,
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 6b6d75a122e4c6fec93ace61c0df93011a4abd83..529e323c13868c20f9867b48825202cc8e9d2720 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2009-08-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* gas/i386/l1om.d: Check elf64-l1om format.
+
 2006-08-11  Bernd Schmidt  <bernd.schmidt@analog.com>
 
 	* gas/bfin/parallel.s: Add more test cases.
diff --git a/gas/testsuite/gas/i386/l1om.d b/gas/testsuite/gas/i386/l1om.d
index 6c000b72279d99f68f5a15ab6f4c86ee55e31eb7..fae038cbcce79273110b2b804a15ef2cb38ced73 100644
--- a/gas/testsuite/gas/i386/l1om.d
+++ b/gas/testsuite/gas/i386/l1om.d
@@ -2,7 +2,8 @@
 #as: -J -march=l1om
 #objdump: -dw --insn-width=7
 #name: l1om
-.*: +file format .*
+
+.*: +file format elf64-l1om.*
 
 Disassembly of section .text: