diff --git a/src/uu/lscpu/src/lscpu.rs b/src/uu/lscpu/src/lscpu.rs
index 0bde18f..2fc84cf 100644
--- a/src/uu/lscpu/src/lscpu.rs
+++ b/src/uu/lscpu/src/lscpu.rs
@@ -67,14 +67,21 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
     // Add more CPU information here...
 
     if let Ok(contents) = fs::read_to_string("/proc/cpuinfo") {
-        let re = RegexBuilder::new(r"^model name\s+:\s+(.*)$")
-            .multi_line(true)
-            .build()
-            .unwrap();
-        // Assuming all CPUs have the same model name
-        if let Some(cap) = re.captures_iter(&contents).next() {
-            cpu_infos.push("Model name", &cap[1], None);
-        };
+        if let Some(cpu_model) = find_cpuinfo_value(&contents, "model name") {
+            if let Some(addr_sizes) = find_cpuinfo_value(&contents, "address sizes") {
+                cpu_infos.push(
+                    "Model name",
+                    cpu_model.as_str(),
+                    Some(vec![CpuInfo {
+                        field: "Address sizes".to_string(),
+                        data: addr_sizes,
+                        children: vec![],
+                    }]),
+                );
+            } else {
+                cpu_infos.push("Model name", cpu_model.as_str(), None);
+            }
+        }
     }
 
     if json {
@@ -87,6 +94,20 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
     Ok(())
 }
 
+fn find_cpuinfo_value(contents: &str, key: &str) -> Option<String> {
+    let pattern = format!(r"^{}\s+:\s+(.*)$", key);
+    let re = RegexBuilder::new(pattern.as_str())
+        .multi_line(true)
+        .build()
+        .unwrap();
+
+    if let Some(cap) = re.captures_iter(contents).next() {
+        return Some(cap[1].to_string());
+    };
+
+    None
+}
+
 fn get_architecture() -> String {
     if cfg!(target_arch = "x86") {
         "x86".to_string()