Menu

#3527 >> ASxx shift bug

open
nobody
sdas (1) pdk (3)
other
5
2022-12-05
2022-12-05
No

It seems sdas perform 24bit signed shift for constants.

                                    413 ;   ../test.c: 55: EASY_PDK_CALIBRATE_IHRC(0x12345678,5000);
                                    414 ;   genInline
      000064 52 54                  415     and a, #'R'                       
      000066 43 54                  416     and a, #'C'                       
      000068 01 54                  417     and a, #(1)            
      00006A 78 54                  418     and a, #((0x12345678))     
      00006C 56 54                  419     and a, #((0x12345678)>>8)  
      00006E 34 54                  420     and a, #((0x12345678)>>16) 
      000070 00 54                  421     and a, #((0x12345678)>>24) <--- bug is here
      000072 88 54                  422     and a, #((5000))     
      000074 13 54                  423     and a, #((5000)>>8)  
      000076 0B 54                  424     and a, #(0x0b)             

for "and a, #((16000000)>>24)" it emit "FF 54" which looks like extension from bit 23.

Discussion


Log in to post a comment.

Monday.com Logo