0

enter image description here I can't tell how to determine the following:

i, 10th bit on the left.

imm3, what's the difference for this one with imm8?

Peter Cordes
  • 328,167
  • 45
  • 605
  • 847
Mzq
  • 1,796
  • 4
  • 30
  • 65
  • 3
    The `i`, `imm3` and `imm8` bits are joined to form a 32 bit immediate using the `ThumbExpandImm` function as explained in the pseudo code. Refer to the appendix for how this works. – fuz Mar 19 '22 at 11:53

1 Answers1

4

The fields i and imm3 apply a transformation to the imm8 constant in order to generate more 32 bit constants. Here is the official documentation which sadly doesn't explain much. There is also a post on The Old New Thing about it.

Edit: The link to the documentation is for ARMv7-A but you find identical text in ARMv7-M reference section A5.3.2

Tom V
  • 4,827
  • 2
  • 5
  • 22
Homer512
  • 9,144
  • 2
  • 8
  • 25