+/*
+ * WARNING: this code is written for 32-bit mode, and ported by the kernel if necessary
+ * to 64-bit mode for use in the 64-bit commpage. This "port" consists of the following
+ * simple transformations:
+ * - all word compares are changed to doubleword
+ * - all "srwi[.]" opcodes are changed to "srdi[.]"
+ * Nothing else is done. For this to work, the following rules must be
+ * carefully followed:
+ * - do not use carry or overflow
+ * - only use record mode if you are sure the results are mode-invariant
+ * for example, all "andi." and almost all "rlwinm." are fine
+ * - do not use "slwi", "slw", or "srw"
+ * An imaginative programmer could break the porting model in other ways, but the above
+ * are the most likely problem areas. It is perhaps surprising how well in practice
+ * this simple method works.
+ */