yield "flags = SVP64_OPERAND_SIGNED;"
             self.emit("break;")
 
-        def gpr_handler(span):
-            yield from generic_handler(span, "SVP64_OPERAND_GPR")
-
-        def fpr_handler(span):
-            yield from generic_handler(span, "SVP64_OPERAND_FPR")
+        def gpr_handler(span, pair=False):
+            if not pair:
+                yield from generic_handler(span, "SVP64_OPERAND_GPR")
+            else:
+                yield from generic_handler(span, "(SVP64_OPERAND_GPR | SVP64_OPERAND_PAIR)")
+
+        def fpr_handler(span, pair=False):
+            if not pair:
+                yield from generic_handler(span, "SVP64_OPERAND_FPR")
+            else:
+                yield from generic_handler(span, "(SVP64_OPERAND_FPR | SVP64_OPERAND_PAIR)")
 
         handlers = {
             insndb.SignedOperand: signed_handler,
             insndb.GPROperand: gpr_handler,
             insndb.FPROperand: fpr_handler,
+            insndb.GPRPairOperand: lambda span: gpr_handler(span, True),
+            insndb.FPRPairOperand: lambda span: fpr_handler(span, True),
         }
         self.emit(f"case 0x{(path + 1):02x}: /* {', '.join(node.names)} */")
         with self:
 
 #define SVP64_OPERAND_SIGNED    (UINT32_C(1) << UINT32_C(0))
 #define SVP64_OPERAND_GPR       (UINT32_C(1) << UINT32_C(1))
 #define SVP64_OPERAND_FPR       (UINT32_C(1) << UINT32_C(2))
+#define SVP64_OPERAND_PAIR      (UINT32_C(1) << UINT32_C(3))
 
 struct svp64_ctx {
     struct svp64_record const *record;