Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
09/12/11 22:27
Modified:
  09/12/11 22:45

Read: times


 
#183736 - Using...
Responding to: ???'s previous message
From my experience with the Keil tool set the USING(n) attribute applies to the "implementation" of the code and not to pointers or declarations normally located in .h files. It gives the compiler a hint as to how the code in the function needs to be built into machine language to properly deal with the chosen register set.

Note that register set selection is really hard tied to the way the code is translated to assembly. Optimized code generation, particularly from Keil - and also probably others, makes extensive use of code constructs such as:

PUSH  ACC
PUSH  AR1
PUSH  AR2
   ...
   ...
POP   AR2
POP   AR1
POP   ACC

 


As opposed to the more "register set indepedant"code:

as:

PUSH  ACC
MOV   A, R1
PUSH  ACC
MOV   A, R2
PUSH  ACC
PUSH  AR1
PUSH  AR2
   ...
   ... 
POP   ACC
MOV   R2, A
POP   ACC
MOV   R1, A
POP   ACC

 




Michael Karas

List of 17 messages in thread
TopicAuthorDate
SDCC: function pointers in an ISR            01/01/70 00:00      
   Alternative            01/01/70 00:00      
      re: Alternative            01/01/70 00:00      
         Register bank 1            01/01/70 00:00      
            re: register bank 1            01/01/70 00:00      
               Using...            01/01/70 00:00      
               Lack of orthogonality            01/01/70 00:00      
                  incorrect warning            01/01/70 00:00      
                     re: incorrect warning            01/01/70 00:00      
                        not fixed yet            01/01/70 00:00      
                           re: not fixed yet            01/01/70 00:00      
                              Actel's answer.            01/01/70 00:00      
   warning            01/01/70 00:00      
   function pointers in SDCC            01/01/70 00:00      
   bug fixed!            01/01/70 00:00      
      Actel support            01/01/70 00:00      
         Still on the payroll            01/01/70 00:00      

Back to Subject List