Undesirable behaviour in semidet C?

Tyson Richard DOWD trd at students.cs.mu.oz.au
Tue Apr 22 18:46:14 AEST 1997


Here's a problem I just spend several hours tracking down.

	save_transient_registers();
	SUCCESS_INDICATOR = ML_get_functors_check_range(FunctorNumber,
		TypeInfo, &info);
	restore_transient_registers();

On the SPARC, SUCCESS_INDICATOR is stored in %i5, which is a transient
register that is restored with its old value. This isn't so good...

Would it be much harder to create a declaration for SUCCESS_INDICATOR as
a bool, then put code after the C code that assigned SUCCESS_INDICATOR
to r1, rather than #defining SUCCESS_INDICATOR as r1?

-- 
       Tyson Dowd           #
                            #             Sign on refrigerator:
     trd at cs.mu.oz.au        #           Refrigerate after opening. 
http://www.cs.mu.oz.au/~trd #                  - C. J. Owen.



More information about the developers mailing list