You can use this variant of the print command if you want to execute a function from your program, but without cluttering the output with void returned values. If the result isn't void, it's printed and saved in the value history.
A user-controlled variable, call_scratch_address, specifies the location of a scratch area to be used when GDB calls a function in the target. This is necessary because the usual method of putting the scratch area on the stack doesn't work in systems that have separate instruction and data spaces.