davids5 commented on pull request #3471:
URL: https://github.com/apache/incubator-nuttx/pull/3471#issuecomment-815830500


   @xiaoxiang781216 - Do you find this super confusing? I do. Maybe it is my 
perspective on the naming, and you can shed some light on the naming, if not 
the why not fix the naming in this PR as well?
   
   As you describe, above  ARM refers to it as:
   
   Stack-oriented suffix | For store or push instructions | For load or pop 
instructions
   -- | -- | --
   FD (Full Descending stack) | DB (Decrement Before) | IA (Increment After)
   
   This sort of construct is very unclear. 
   
   `(sp < istackbase && sp >= istackbase - istacksize)` 
   
   For me the perspective is that `base` of a lamp is on a table, the `top` of 
a lamp is above the table, the higher up it is the higher the addresses is.
   
   `low` and `high` addresses are super clear the words `base` and `bound` or 
'top' are also grock-able (if used consistently) 
   
   The definition of the stack can also be clearer:
   
   | Address increase
   v
   lowerbound  (lower address) : AKA base
              ds size
   upperbound (higher address) : AKA top 
   
   If it were written in terms of `lowerbound`  `upperbound`
   
   Given FD-DB-IA  - A test for a valid Stack would be clear:
   
   'sp  > lowerbound  &&  sp <= upperbound`
   
   'lowerbound == sp  - is invalid  as a push (DB) at this point would be out 
of bounds. It is valid if in the context of a handler that can NOT call deeper 
but will ONLY return pop (IA)
   upperbound` == sp - is valid if the stake is unused, as push is DB. It is 
invalid the context of a handler that will ONLY return pop (IA)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to