Menu

#4024 s08/hc08 rotation issues with --nopurity --nogenconstprop --nolabelopt --no-peep --max-allocs-per-node 128

open
nobody
s08 (1)
HC08
5
2026-07-04
2026-06-24
No

With the options --nopurity --nogenconstprop --nolabelopt --no-peep --max-allocs-per-node 128, three tests from GCC fail for s08; all of them are about rotations.

philipp@notebook7:~/sdcc-trunk/sdcc/support/regression$ make random-test-11520
Creating random-11520 based on s08 with additional options: --nopurity --nogenconstprop --nolabelopt --no-peep --max-allocs-per-node 128 
Running random-11520 regression tests
Summary for 'random-11520': 3 failures, 36299 tests, 6253 test cases, 8275960 bytes, 441300529 ticks
   Failure: gcc-torture-execute-20020226-1.c
   Failure: gcc-torture-execute-20020508-1.c
   Failure: gcc-torture-execute-20020508-2.c

Discussion

  • Philipp Klaus Krause

    The problem is in code generation for shifts. When the result and the right operand overlap in memory, the right operand gets overwritten when the left operand gets copied into the result.

     
  • Philipp Klaus Krause

    • summary: s08 rotation issues with --nopurity --nogenconstprop --nolabelopt --no-peep --max-allocs-per-node 128 --> s08/hc08 rotation issues with --nopurity --nogenconstprop --nolabelopt --no-peep --max-allocs-per-node 128
     
  • Philipp Klaus Krause

    I see the same for hc08:

    Creating random-11019485015421102652 based on hc08 with additional options: --opt-code-size --nolospre --nolabelopt --no-peep --max-allocs-per-node 128 
    Running random-11019485015421102652 regression tests
    Summary for 'random-11019485015421102652': 3 failures, 36297 tests, 6253 test cases, 0 bytes, 452495786 ticks
       Failure: gcc-torture-execute-20020226-1.c
       Failure: gcc-torture-execute-20020508-1.c
       Failure: gcc-torture-execute-20020508-2.c
    
     

Log in to post a comment.

Auth0 Logo