revert vstore()
This commit is contained in:
parent
1fa0fe2786
commit
f26fdaefd8
1 changed files with 8 additions and 0 deletions
8
tccgen.c
8
tccgen.c
|
@ -2552,6 +2552,11 @@ ST_FUNC void vstore(void)
|
|||
/* remove bit field info to avoid loops */
|
||||
vtop[-1].type.t = ft & ~(VT_BITFIELD | (-1 << VT_STRUCT_SHIFT));
|
||||
|
||||
/* duplicate source into other register */
|
||||
gv_dup();
|
||||
vswap();
|
||||
vrott(3);
|
||||
|
||||
if((ft & VT_BTYPE) == VT_BOOL) {
|
||||
gen_cast(&vtop[-1].type);
|
||||
vtop[-1].type.t = (vtop[-1].type.t & ~VT_BTYPE) | (VT_BYTE | VT_UNSIGNED);
|
||||
|
@ -2583,6 +2588,9 @@ ST_FUNC void vstore(void)
|
|||
gen_op('|');
|
||||
/* store result */
|
||||
vstore();
|
||||
|
||||
/* pop off shifted source from "duplicate source..." above */
|
||||
vpop();
|
||||
} else {
|
||||
#ifdef CONFIG_TCC_BCHECK
|
||||
/* bound check case */
|
||||
|
|
Loading…
Reference in a new issue