My reading of the standard suggests that this is left up to the implementation and the optimizer.
Section 5.1.2.3, part 10:
EXAMPLE 2 In executing the fragment
char c1, c2;
/* ... */
c1 = c1 + c2;
the ‘‘integer promotions’’ require that the abstract machine promote the value of each variable to int size and then add the two ints and truncate the sum. Provided the addition of two chars can be done without overflow, or with overflow wrapping silently to produce the correct result, the actual execution need only produce the same result, possibly omitting the promotions.
My understanding is that the standard lets the compiler decide if it is OK to use 8-bit addition, as long as the result is not going to be distinguishable from the addition of ints and converted to chars.
NOTE Back at my days in the embedded world (mid-nineties), the C compiler that we used for our 8-bit platforms, Whitesmith compiler for 68HC11, produced a "plain" 8-bit addition instruction for adding two char
s. The only way to find out for sure what happens in your fujitsu system would be to compile-to-assembly and check for yourself.