[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/3] tcg: Use "unspecified behaviour" for shifts
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH 2/3] tcg: Use "unspecified behaviour" for shifts |
Date: |
Tue, 18 Mar 2014 09:06:24 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 |
On 03/18/2014 09:02 AM, Peter Maydell wrote:
> On 18 March 2014 15:48, Richard Henderson <address@hidden> wrote:
>> Change the definition such that shifts are not allowed to crash
>> for any input.
>>
>> Signed-off-by: Richard Henderson <address@hidden>
>> ---
>> tcg/README | 18 +++++++++++++-----
>> 1 file changed, 13 insertions(+), 5 deletions(-)
>>
>> diff --git a/tcg/README b/tcg/README
>> index f178212..431cee7 100644
>> --- a/tcg/README
>> +++ b/tcg/README
>> @@ -36,6 +36,12 @@ or a memory location which is stored in a register
>> outside QEMU TBs
>> A TCG "basic block" corresponds to a list of instructions terminated
>> by a branch instruction.
>>
>> +An operation with "undefined behavior" may result in a crash.
>> +
>> +An operation with "unspecified behaviour" shall not crash. However,
>
> no 'u' would be consistent with the US spelling elsewhere.
Oops, by fingers have no consistency.
> Incidentally, are deposit ops with bogus pos and len
> undefined or unspecified behavior? (And is deposit of
> 64 bits to bit 0 allowed?)
Yes, deposit of 64 at 0 is allowed.
Since deposit parameters are immediate constants instead
of values in TCGv temporaries, we check them at opcode
creation in tcg-op.h.
Since we abort that's undefined, I guess.
r~