Revision 1884533c

b/target-cris/translate.c
227 227
	}
228 228
}
229 229

  
230
/* Sign extend at translation time.  */
231
static int sign_extend(unsigned int val, unsigned int width)
232
{
233
	int sval;
234

  
235
	/* LSL.  */
236
	val <<= 31 - width;
237
	sval = val;
238
	/* ASR.  */
239
	sval >>= 31 - width;
240
	return sval;
241
}
242

  
230 243
static int cris_fetch(DisasContext *dc, uint32_t addr,
231 244
		      unsigned int size, unsigned int sign)
232 245
{
......
594 607
	}
595 608
}
596 609

  
597
/* Sign extend at translation time.  */
598
static int sign_extend(unsigned int val, unsigned int width)
599
{
600
	int sval;
601

  
602
	/* LSL.  */
603
	val <<= 31 - width;
604
	sval = val;
605
	/* ASR.  */
606
	sval >>= 31 - width;
607
	return sval;
608
}
609

  
610 610
static inline void cris_clear_x_flag(DisasContext *dc)
611 611
{
612 612
	if (dc->flagx_known && dc->flags_x)

Also available in: Unified diff