Patent ID: 7249248

Claim:
An apparatus comprising: a first register to hold an initial value of a first index associated with a looping instruction to be executed for a number of iterations; a second register to hold an initial value of a second index associated with the respective looping instruction; and a third register to hold data indicating non-linear variation pattern associated with the second index, wherein, for each iteration, a current increment of the first index and a current increment of the second index are dynamically determined based on a target increment and the data indicating the non-linear variation pattern associated with the second index, wherein the respective looping instruction is executed to copy data from one memory location to another memory location as part of segmentation and reassembly (SAR) operations performed for data conversion between fixed-sized and variable-sized data formats, wherein the third register is a multi-bit register partitioned into a first group of data and a second group of data, each group of data including a first count field corresponding to a first number which identifies the length of a current block of data and a first offset field corresponding to a second number which identifies the offset from the current block of data to the next block of data, wherein, for reassembly operations, the first index and the second index are altered during execution of the looping instruction based on the target increment and a current increment which is dynamically determined based on the target increment and the data indicating the non-linear pattern associated with the second index, wherein, when the loop is initialized, the first count field in the third register is used to set a current count associated with the second index, and wherein, for each iteration of the looping instruction, the current increment is set based on the current count associated with the second index and the target increment, wherein the current increment is set to the target increment if the current count associated with the second index is greater than or equal to the target increment and set to the current count if the current count is less than the target increment.