Edgar E Iglesias writes:
> On Sat, Jan 16, 2016 at 09:57:36PM +0100, Lluís Vilanova wrote:
>> Richard Henderson writes:
>>
>> > On 01/15/2016 12:12 PM, Lluís Vilanova wrote:
>> >> Richard Henderson writes:
>> >>
>> >>> On 01/15/2016 07:35 AM, Lluís Vilanova wrote:
>> +TCGv_i64 tcg_promise_i
On Sat, Jan 16, 2016 at 09:57:36PM +0100, Lluís Vilanova wrote:
> Richard Henderson writes:
>
> > On 01/15/2016 12:12 PM, Lluís Vilanova wrote:
> >> Richard Henderson writes:
> >>
> >>> On 01/15/2016 07:35 AM, Lluís Vilanova wrote:
> +TCGv_i64 tcg_promise_i64(TCGv_promise_i64 *promise)
> >>>
Richard Henderson writes:
> On 01/15/2016 12:12 PM, Lluís Vilanova wrote:
>> Richard Henderson writes:
>>
>>> On 01/15/2016 07:35 AM, Lluís Vilanova wrote:
+TCGv_i64 tcg_promise_i64(TCGv_promise_i64 *promise)
+{
+int pi = tcg_ctx.gen_next_parm_idx;
+*promise = (TCGv_pr
On 01/15/2016 12:12 PM, Lluís Vilanova wrote:
> Richard Henderson writes:
>
>> On 01/15/2016 07:35 AM, Lluís Vilanova wrote:
>>> +TCGv_i64 tcg_promise_i64(TCGv_promise_i64 *promise)
>>> +{
>>> +int pi = tcg_ctx.gen_next_parm_idx;
>>> +*promise = (TCGv_promise_i64)&tcg_ctx.gen_opparam_buf[p
Richard Henderson writes:
> On 01/15/2016 07:35 AM, Lluís Vilanova wrote:
>> +TCGv_i64 tcg_promise_i64(TCGv_promise_i64 *promise)
>> +{
>> +int pi = tcg_ctx.gen_next_parm_idx;
>> +*promise = (TCGv_promise_i64)&tcg_ctx.gen_opparam_buf[pi];
>> +return tcg_const_i64(0xdeadcafe);
>> +}
>
On 01/15/2016 07:35 AM, Lluís Vilanova wrote:
> +TCGv_i64 tcg_promise_i64(TCGv_promise_i64 *promise)
> +{
> +int pi = tcg_ctx.gen_next_parm_idx;
> +*promise = (TCGv_promise_i64)&tcg_ctx.gen_opparam_buf[pi];
> +return tcg_const_i64(0xdeadcafe);
> +}
This doesn't work for a 32-bit host.
A TCG constant value promise allows creating TCG code that works with a
constant whose value is not known until after the code has been
generated (e.g., a count of the instructions in a basic block).
Signed-off-by: Lluís Vilanova
---
tcg/tcg-op.h |6 ++
tcg/tcg.c| 33 ++