/* returns 0 if @cs and @ct are equal, < 0 if @cs is less than @ct > 0 if @cs is greater than @ct  */
int strcmp(const char *cs, const char *ct)
/* returns 0 if @cs and @ct are equal, < 0 if @cs is less than @ct > 0 if @cs is greater than @ct  */
int strcmp(const char *cs, const char *ct)
{
	register int r0 asm("0") = 0;
	int ret = 0;
	asm volatile ("0: clst %2,%3\n"
		      "   jo   0b\n"
		      "   je   1f\n"
		      "   ic   %0,0(%2)\n"
		      "   ic   %1,0(%3)\n"
		      "   sr   %0,%1\n"
		      "1:"
		      : "+d" (ret), "+d" (r0), "+a" (cs), "+a" (ct)
		      : : "cc" );
	return ret;
}