Major changes are necessary to make this processor-independent, but
moving the file out of x86 and into common is the first step (to preempt
addition of further x86-isms).
Submitted by: Elliott Mitchell <ehem+freebsd@m5p.com>
Original implementation: Julien Grall <julien@xen.org>, 2014-01-13 17:41:04