From: bellard Date: Sun, 13 Jul 2003 17:31:01 +0000 (+0000) Subject: gcc 3.2.2 bug workaround (RedHat 9 fix) X-Git-Tag: TizenStudio_2.0_p2.3~15887 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=91cf4d88fbb174ba5a4ade9c4479f3b0775a5599;p=sdk%2Femulator%2Fqemu.git gcc 3.2.2 bug workaround (RedHat 9 fix) git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@326 c046a42c-6fe2-441c-8c8c-71466251a162 --- diff --git a/ops_template_mem.h b/ops_template_mem.h index f1209d2..eacaabb 100644 --- a/ops_template_mem.h +++ b/ops_template_mem.h @@ -44,6 +44,9 @@ void OPPROTO glue(glue(op_rol, MEM_SUFFIX), _T0_T1_cc)(void) T0 = (T0 << count) | (T0 >> (DATA_BITS - count)); #ifdef MEM_WRITE glue(st, SUFFIX)((uint8_t *)A0, T0); +#else + /* gcc 3.2 workaround. This is really a bug in gcc. */ + asm volatile("" : : "r" (T0)); #endif CC_SRC = (cc_table[CC_OP].compute_all() & ~(CC_O | CC_C)) | (lshift(src ^ T0, 11 - (DATA_BITS - 1)) & CC_O) | @@ -63,6 +66,9 @@ void OPPROTO glue(glue(op_ror, MEM_SUFFIX), _T0_T1_cc)(void) T0 = (T0 >> count) | (T0 << (DATA_BITS - count)); #ifdef MEM_WRITE glue(st, SUFFIX)((uint8_t *)A0, T0); +#else + /* gcc 3.2 workaround. This is really a bug in gcc. */ + asm volatile("" : : "r" (T0)); #endif CC_SRC = (cc_table[CC_OP].compute_all() & ~(CC_O | CC_C)) | (lshift(src ^ T0, 11 - (DATA_BITS - 1)) & CC_O) |