-1

I'm learning the basics of Armv8 and am answering a homework problem asking to categorize each of the instructions into a specific type.

Data processing instructions include:

AND, EOR, SUB, RSB, ADD, ADC, SBC, RSC, TST, TEQ, CMP, CMN, ORR, MOV, BIC & MVN.

Branch processes:

B, BL

Transfer processes:

STR, STRB, LDR & LDRB

However, I wasn't able to find any definitive answer in the ARMv8 reference manual regarding which category the LSL, LSR, ASR & ROR instructions fall into.

I'm assuming it's not the multiply category, but I guess that would make sense if it were since shifting is the same as multiplying by a power of two?

MFerguson
  • 1,739
  • 9
  • 17
  • 30
  • 1
    You can categorize instructions any way that you want, there's not really a formal definition of what constitutes a "data processing instruction" or what would differentiate it from some other type. The ARMv8 architecture reference manual does list them under data processing. – Nate Eldredge Feb 13 '21 at 23:03
  • 1
    It's kind of like those silly debate questions that ask whether a taco falls into the category of "sandwich". – Nate Eldredge Feb 13 '21 at 23:07
  • If you look at the instructions I think you will see that LSL, LSR, etc are MOV instructions which is documented as Data Processing instructions. – old_timer Feb 14 '21 at 00:57
  • Yes it is a silly question but at the same time ARM has forever now gone to the effort to categorize instructions into types. – old_timer Feb 14 '21 at 00:57
  • And in the document I am looking it does clearly show ASR, LSL, etc under Data Processing. (whether or not it encodes as a mov) – old_timer Feb 14 '21 at 01:01

1 Answers1

1

The documentation lists them as Data Processing operations, not in the list at the top but when you dig into the descriptions of the Data Processing operation groups it has them listed there. For aarch32 I think they were simply mov instructions with a shifter operand, for aarch64 I am not sure if they are their own thing or just a pseudo instruction for mov.

old_timer
  • 69,149
  • 8
  • 89
  • 168