This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Performance effect because of removing some instructions from ARMv8?

I was going through the ARMv8 Architecture Reference Manual and I came to know that it does not support many instructions that were previously supported by ARMv7 architecture. For example ARMv8 does not support conditional codes and have a seperate instruction CSEL for implementing the same. On further reading I came to know that to reduce the load on instruction encoding and because of better branch predictor conditional support has been removed. However as I came across more instructions I found out that ARM has also removed  the RSB instruction instead you need to use a combination of SUB and NEG instruction to achieve the same. My question is that whether increasing the number of instruction does not increase the number of cycles required to execute that instruction. Similarly you can't load multiple registers onto stack, instead only a pair of registers at a time. Similarly there are various neon instructions in ARMv7 that do not have an equivalent instruction in ARMv8 so doesn't that affect the performance of the program?

Parents
  • ARM 64 bit code tends to be a bit smaller than ARM 32 bit code (not Thumb!) and have a very worthwhile speed increase on the same processor. So they certainly did something right. They designed it mainly to be a good target for C and C++ programs. For RSB if used in a loop the constant can be loaded outside the loop and SUB used in 64 bit code, but yes it is a bit of a pity.

Reply
  • ARM 64 bit code tends to be a bit smaller than ARM 32 bit code (not Thumb!) and have a very worthwhile speed increase on the same processor. So they certainly did something right. They designed it mainly to be a good target for C and C++ programs. For RSB if used in a loop the constant can be loaded outside the loop and SUB used in 64 bit code, but yes it is a bit of a pity.

Children
No data