diff --git a/doc/aarch64/supported-instructions-aarch64.md b/doc/aarch64/supported-instructions-aarch64.md
index b11e0cfd..5919354f 100644
--- a/doc/aarch64/supported-instructions-aarch64.md
+++ b/doc/aarch64/supported-instructions-aarch64.md
@@ -24,6 +24,7 @@ AArch64 integer instructions
----------------------------
+
### ADC ###
Add with carry bit.
@@ -214,6 +215,7 @@ Convert floating-point condition flags from Arm format to alternative format _(A
+
### B ###
Conditional branch to PC offset.
@@ -392,6 +394,7 @@ Branch target identification.
+
### CAS ###
Compare and Swap word or doubleword in memory _(Armv8.1)_.
@@ -749,6 +752,7 @@ Conditional select negation: rd = cond ? rn : -rm.
+
### DC ###
System data cache operation.
@@ -771,6 +775,7 @@ Data synchronization barrier.
+
### EON ###
Bitwise enor/xnor (A ^ ~B).
@@ -803,6 +808,7 @@ Extract.
+
### HINT ###
System hint (named type).
@@ -825,6 +831,7 @@ Halting debug-mode breakpoint.
+
### IC ###
System instruction cache operation.
@@ -840,6 +847,7 @@ Instruction synchronization barrier.
+
### LDADD ###
Atomic add on word or doubleword in memory _(Armv8.1)_
@@ -1877,6 +1885,7 @@ Logical shift right by variable.
+
### MADD ###
Multiply and accumulate.
@@ -1968,6 +1977,7 @@ Move inverted operand to register.
+
### NEG ###
Negate.
@@ -2004,6 +2014,7 @@ No-op.
+
### ORN ###
Bitwise nor (A | ~B).
@@ -2019,6 +2030,7 @@ Bitwise or (A | B).
+
### PACDA ###
Pointer Authentication Code for Data address, using key A _(Armv8.3)_.
@@ -2189,6 +2201,7 @@ Prefetch memory (with unscaled offset, allowing unallocated hints).
+
### RBIT ###
Bit reverse.
@@ -2267,6 +2280,7 @@ Rotate right by variable.
+
### SBC ###
Subtract with carry bit.
@@ -3040,6 +3054,7 @@ System instruction.
+
### TBNZ ###
Test bit and branch to PC offset if not zero.
@@ -3076,6 +3091,7 @@ Bit test and set flags.
+
### UBFIZ ###
Unsigned bitfield insert with zero at right.
@@ -3176,6 +3192,7 @@ Unsigned extend word.
+
### XAFLAG ###
Convert floating-point condition flags from alternative format to Arm format _(Armv8.5)_.
@@ -3209,6 +3226,7 @@ AArch64 floating point and NEON instructions
--------------------------------------------
+
### ABS ###
Absolute value.
@@ -3266,6 +3284,7 @@ Bitwise and.
+
### BIC ###
Bit clear immediate.
@@ -3302,6 +3321,7 @@ Bitwise select.
+
### CLS ###
Count leading sign bits.
@@ -3401,6 +3421,7 @@ Population count per byte.
+
### DUP ###
Duplicate general-purpose register to vector.
@@ -3416,6 +3437,7 @@ Duplicate vector element to vector or scalar.
+
### EOR ###
Bitwise eor.
@@ -3434,6 +3456,7 @@ Extract vector from pair of vectors.
+
### FABD ###
FP absolute difference.
@@ -4316,6 +4339,7 @@ FP subtract.
+
### INS ###
Insert vector element from another vector element.
@@ -4334,6 +4358,7 @@ Insert vector element from general-purpose register.
+
### LD1 ###
One-element single structure load to one lane.
@@ -4473,6 +4498,7 @@ Four-element single structure load to all lanes.
+
### MLA ###
Multiply-add by scalar element.
@@ -4590,6 +4616,7 @@ Vector move inverted immediate.
+
### NEG ###
Negate.
@@ -4605,6 +4632,7 @@ Bitwise not.
+
### ORN ###
Bitwise orn.
@@ -4627,6 +4655,7 @@ Bitwise or.
+
### PMUL ###
Polynomial multiply.
@@ -4649,6 +4678,7 @@ Polynomial multiply long (second part).
+
### RADDHN ###
Rounding add narrow returning high half.
@@ -4720,6 +4750,7 @@ Rounding subtract narrow returning high half (second part).
+
### SABA ###
Signed absolute difference and accumulate.
@@ -5620,6 +5651,7 @@ Signed extend long (second part).
+
### TBL ###
Table lookup from four registers.
@@ -5715,6 +5747,7 @@ Transpose vectors (secondary).
+
### UABA ###
Unsigned absolute difference and accumulate.
@@ -6251,6 +6284,7 @@ Unzip vectors (secondary).
+
### XTN ###
Extract narrow.
@@ -6266,6 +6300,7 @@ Extract narrow (second part).
+
### ZIP1 ###
Zip vectors (primary).
@@ -6285,6 +6320,7 @@ AArch64 Scalable Vector Extension (SVE) instructions
----------------------------------------------------
+
### ABS ###
Absolute value (predicated).
@@ -6481,6 +6517,7 @@ Reversed arithmetic shift right by vector (predicated).
+
### BCAX ###
Bitwise clear and exclusive OR.
@@ -6683,6 +6720,7 @@ Bitwise select with second input inverted.
+
### CADD ###
Complex integer add with rotate.
@@ -7114,6 +7152,7 @@ Compare and terminate loop.
+
### DECB ###
Decrement scalar by multiple of predicate constraint element count.
@@ -7206,6 +7245,7 @@ Broadcast logical bitmask immediate to vector (unpredicated).
+
### EON ###
Bitwise exclusive OR with inverted immediate (unpredicated).
@@ -7299,6 +7339,7 @@ Extract vector from pair of vectors.
+
### FABD ###
Floating-point absolute difference (predicated).
@@ -8208,6 +8249,7 @@ Floating-point trigonometric select coefficient.
+
### HISTCNT ###
Count matching elements in vector.
@@ -8226,6 +8268,7 @@ Count matching elements in vector segments.
+
### INCB ###
Increment scalar by multiple of predicate constraint element count.
@@ -8332,6 +8375,7 @@ Insert general-purpose register in shifted vector.
+
### LASTA ###
Extract element after last to SIMD&FP scalar register.
@@ -9115,6 +9159,7 @@ Reversed logical shift right by vector (predicated).
+
### MAD ###
Multiply-add vectors (predicated), writing multiplicand [Zdn = Za + Zdn * Zm].
@@ -9345,6 +9390,7 @@ Multiply vectors (unpredicated).
+
### NAND ###
Bitwise NAND predicates.
@@ -9438,6 +9484,7 @@ Bitwise invert predicate, setting the condition flags.
+
### ORN ###
Bitwise OR inverted predicate.
@@ -9517,6 +9564,7 @@ Bitwise OR reduction to scalar.
+
### PFALSE ###
Set all predicate elements to false.
@@ -9637,6 +9685,7 @@ Unpack and widen half of predicate.
+
### RADDHNB ###
Rounding add narrow high part (bottom).
@@ -9750,6 +9799,7 @@ Rounding subtract narrow high part (top).
+
### SABA ###
Signed absolute difference and accumulate.
@@ -11288,6 +11338,7 @@ Signed word extend (predicated).
+
### TBL ###
Programmable table lookup in one or two vector table (zeroing).
@@ -11345,6 +11396,7 @@ Interleave even or odd elements from two vectors.
+
### UABA ###
Unsigned absolute difference and accumulate.
@@ -12194,6 +12246,7 @@ Concatenate even or odd elements from two vectors.
+
### WHILEGE ###
While decrementing signed scalar greater than or equal to scalar.
@@ -12292,6 +12345,7 @@ Write the first-fault register.
+
### XAR ###
Bitwise exclusive OR and rotate right by immediate.
@@ -12303,6 +12357,7 @@ Bitwise exclusive OR and rotate right by immediate.
+
### ZIP1 ###
Interleave elements from two half predicates.
@@ -12340,6 +12395,7 @@ Additional or pseudo instructions
---------------------------------
+
### BIND ###
Bind a label to the current PC.
@@ -12348,6 +12404,7 @@ Bind a label to the current PC.
+
### DC ###
Emit data in the instruction stream.
@@ -12377,6 +12434,7 @@ Emit raw instructions into the instruction stream.
+
### PLACE ###
Place a literal at the current PC.
diff --git a/tools/make_instruction_doc_aarch64.pl b/tools/make_instruction_doc_aarch64.pl
index 5d8c7859..9ff32f8d 100755
--- a/tools/make_instruction_doc_aarch64.pl
+++ b/tools/make_instruction_doc_aarch64.pl
@@ -176,7 +176,7 @@ sub describe_insts
next if($inst{$i}->{'type'} ne $type);
unless ($last_initial eq $inst{$i}->{'initial'}) {
$last_initial = $inst{$i}->{'initial'};
- $result .= sprintf("\n", lc($type), $last_initial);
+ $result .= sprintf("\n\n", lc($type), $last_initial);
}
$result .= sprintf("### %s ###\n\n%s\n\n",
uc($inst{$i}->{'mnemonic'}),