We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi all,
The LDM and STM instruction is no more supported in ARMv8 and instead LTP and STP is used.
What is the key difference between the same why the instruction is loaded and stored in pair.
HI Pravinchanm,
You will find the definition of LDP/STP behaviour in the ARMv8 Architecture Reference Manual which you can get from infocenter.
One of the main reasons for moving from LDM/STM to LDP/STP is that the load/store multiple instructions make for a lot of extra work in complex superscalar out-of-order pipelines. When an instruction can touch 15 or 16 registers, that is a lot of dependencies which the pipeline has to manage when trying to schedule that instruction against others which are in the stream at the same time. Restricting the number of registers to two simplifies this considerably and makes for a more efficient pipeline design.
From a software point of view, LDP/STP have addressing modes which are much the same as other load/store instructions so they are easier for programmers and compilers to use when generating code. And, as chinatiger has pointed out above, they support unaligned accesses.
Hope this helps.
Chris
Thank you chris. So happy to get the detailed description of the same.