cpu/x86/mp.h: Implement a pre-SSE2 mfence

Taken from the Linux Kernel.

Tested: Qemu using '-cpu pentium3' now boots.

Change-Id: I376f86f4d7992344dd68374ba67ad3580070f4d8
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/59766
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
diff --git a/src/include/cpu/x86/mp.h b/src/include/cpu/x86/mp.h
index 8105477..aea3ca1 100644
--- a/src/include/cpu/x86/mp.h
+++ b/src/include/cpu/x86/mp.h
@@ -13,7 +13,11 @@
 
 static inline void mfence(void)
 {
-	__asm__ __volatile__("mfence\t\n": : :"memory");
+	/* mfence came with the introduction of SSE2. */
+	if (CONFIG(SSE2))
+		__asm__ __volatile__("mfence\t\n": : :"memory");
+	else
+		__asm__ __volatile__("lock; addl $0,0(%%esp)": : : "memory");
 }
 
 /* The sequence of the callbacks are in calling order. */