Author Topic: ARM 8.1-M Helium assembler  (Read 822 times)

0 Members and 1 Guest are viewing this topic.

Offline NorthGuyTopic starter

  • Super Contributor
  • ***
  • Posts: 3525
  • Country: ca
ARM 8.1-M Helium assembler
« on: September 16, 2026, 03:57:27 pm »
Arm8.1-M MVE extension, also known as Helium, has really fantastic mnemonics for the assembler instructions. For example:

Code: [Select]
vrmlsdavhaxt.s32 r8,r9,q6,q2
 

Offline eutectique

  • Frequent Contributor
  • **
  • Posts: 632
  • Country: be
Re: ARM 8.1-M Helium assembler
« Reply #1 on: September 16, 2026, 04:58:27 pm »
Code: [Select]
vrmlsdavhaxt.s32 r8,r9,q6,q2

Nice! AI explains it bit by bit: Vector - Rounding - Multiply - Long - Subtract - Dual - Accumulate - Across Vector - High Bits - Accumulate (Suffix) - Xchange - Then (Predication). The last letter smells like Itanium.
 

Offline jheissjr

  • Regular Contributor
  • *
  • Posts: 156
  • Country: us
Re: ARM 8.1-M Helium assembler
« Reply #2 on: September 20, 2026, 04:04:46 pm »
VQRDMLADHX.S32 Q2, Q1, Q0

Quote
Again, we have the initial V. This time it is followed by a Q, which specifies a saturating math operation,
R (rounding) and D (doubling). We will look at what those options do in detail in the next section. MLA
means this is a multiply-accumulate instruction. The D (dual) and H (return high half) are instruction
specific options and X is exchange. The data type (S32) is a signed 32-bit integer. The operation writes
its results into Q2 and performs the multiply-accumulate on data in registers Q1 and Q0.

Some instructions allow us to specify immediate values. It is not possible to encode an arbitrary 32-bit
constant in an opcode which is at most 32-bits wide. Many instructions permit a 12-bit immediate
value to be encoded, arranged as an 8-bit value which can be rotated by an even number of places
to the desired position within a 32-bit word. Obviously, a floating-point constant cannot be encoded
within an instruction. Helium instructions which include a constant will sometimes have a limited
range of values (for example, most of the shifts described in this chapter allow a shift value of 1 to
32 bits) and these will be noted in the instruction description.

Syntax descriptions of Helium vector instructions will typically be followed by <v>. This indicates that
a T (Then) or E (Else) may be present, associated with lane predication resulting from a VPT or VPST
instruction, explained in Section 4.4. Some instructions may instead have <c> indicating a standard
Arm condition code (for example, GE greater than or equals etc.) The <.dt> field represents the data
type, as already explained.
 

Offline SiliconWizard

  • Super Contributor
  • ***
  • Posts: 17788
  • Country: fr
Re: ARM 8.1-M Helium assembler
« Reply #3 on: September 20, 2026, 04:43:28 pm »
Not exactly RISCy, but powerful.
Almost impossible to hand-code with Helium without the manual right next to you.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf

 

-->