All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
To: Michael Rolnik <mrolnik@gmail.com>
Cc: "thuth@redhat.com" <thuth@redhat.com>,
	"me@xcancerberox.com.ar" <me@xcancerberox.com.ar>,
	"richard.henderson@linaro.org" <richard.henderson@linaro.org>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"dovgaluk@ispras.ru" <dovgaluk@ispras.ru>,
	"imammedo@redhat.com" <imammedo@redhat.com>,
	"philmd@redhat.com" <philmd@redhat.com>
Subject: Re: [PATCH v37 05/17] target/avr: Add instruction translation - Arithmetic and Logic Instructions
Date: Mon, 2 Dec 2019 10:01:21 +0100	[thread overview]
Message-ID: <CAL1e-=jPCDQu2TOgj1qN1Rm8tpWRXrKg_hzVUgr5gxXvFpvggQ@mail.gmail.com> (raw)
In-Reply-To: <CAL1e-=gP+jBkvDtiB8_QWqP0_6weMYqe2TAwB+p_H43WPJhXKA@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3630 bytes --]

On Monday, December 2, 2019, Aleksandar Markovic <
aleksandar.m.mail@gmail.com> wrote:
>
>
> +
> +    /* update status register */
> +    tcg_gen_movi_tl(cpu_Vf, 0); /* Vf = 0 */
> +    tcg_gen_setcondi_tl(TCG_COND_EQ, cpu_Zf, R, 0); /* Zf = R == 0 */
> +    gen_ZNSf(R);
> +    tcg_gen_mov_tl(Rd, R);
> +
>

My email client drives me crazy, all lines from the above segment should be
consecutive, without any empty lines in between. If you see empty lines,
that is because of my email client.


> The idea is to distinguish visually better the portions for updating
> status register from the central part of the operation (usually marked by
> "/* op */" comment. The code also gets more compact, which looks like a
> good thing too.
>
> Aleksandar
>
>
>> Regards,
>> Michael Rolnik
>>
>> On Sun, Dec 1, 2019 at 1:11 AM Aleksandar Markovic <
>> aleksandar.m.mail@gmail.com> wrote:
>>
>>>
>>>
>>> On Saturday, November 30, 2019, Michael Rolnik <mrolnik@gmail.com>
>>> wrote:
>>>
>>>> Hi Aleksandar.
>>>>
>>>> thanks for pointing that out I was not aware of that.
>>>> I can fix it.
>>>>
>>>>
>>> Hey, Michael,
>>>
>>> Please take alook at this:
>>>
>>> https://en.m.wikipedia.org/wiki/ATtiny_microcontroller_comparison_chart
>>>
>>> It looks that all cases of AVR 16-gpr-registers cores belong to the
>>> group "avrtiny10", that actually you may want to add to your solution.
>>> Just a hint.
>>>
>>> Best regards,
>>> Aleksandar
>>>
>>>
>>>
>>> Regards,
>>>> Michael Rolnik
>>>>
>>>> On Sat, Nov 30, 2019 at 6:29 PM Aleksandar Markovic <
>>>> aleksandar.m.mail@gmail.com> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Saturday, November 30, 2019, Aleksandar Markovic <
>>>>> aleksandar.m.mail@gmail.com> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Wednesday, November 27, 2019, Michael Rolnik <mrolnik@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>> +
>>>>>>> +
>>>>>>> +/*
>>>>>>> + *  Performs the logical AND between the contents of register Rd
>>>>>>> and register
>>>>>>> + *  Rr and places the result in the destination register Rd.
>>>>>>> + */
>>>>>>> +static bool trans_AND(DisasContext *ctx, arg_AND *a)
>>>>>>> +{
>>>>>>> +    TCGv Rd = cpu_r[a->rd];
>>>>>>> +    TCGv Rr = cpu_r[a->rr];
>>>>>>> +    TCGv R = tcg_temp_new_i32();
>>>>>>> +
>>>>>>> +    /* op */
>>>>>>> +    tcg_gen_and_tl(R, Rd, Rr); /* Rd = Rd and Rr */
>>>>>>> +
>>>>>>> +    /* Vf */
>>>>>>> +    tcg_gen_movi_tl(cpu_Vf, 0); /* Vf = 0 */
>>>>>>> +
>>>>>>> +    /* Zf */
>>>>>>> +    tcg_gen_setcondi_tl(TCG_COND_EQ, cpu_Zf, R, 0); /* Zf = R == 0
>>>>>>> */
>>>>>>> +
>>>>>>> +    gen_ZNSf(R);
>>>>>>> +
>>>>>>> +    /* R */
>>>>>>> +    tcg_gen_mov_tl(Rd, R);
>>>>>>> +
>>>>>>> +    tcg_temp_free_i32(R);
>>>>>>> +
>>>>>>> +    return true;
>>>>>>> +}
>>>>>>> +
>>>>>>> +
>>>>>>>
>>>>>>
>>>>>> According to specs:
>>>>>>
>>>>>> http://ww1.microchip.com/downloads/en/devicedoc/atmel-42505-
>>>>>> 8-bit-avr-microcontrollers-attiny102-attiny104_datasheet.pdf
>>>>>>
>>>>>> ... the chips in question have cores with 16 GPRs (that correspond to
>>>>>> GPRs R16-R31 of more common AVR cores with 32 GPRs).
>>>>>>
>>>>>>
>>>>> There are more examples;
>>>>>
>>>>> http://ww1.microchip.com/downloads/en/DeviceDoc/atmel-8127-
>>>>> avr-8-bit-microcontroller-attiny4-attiny5-attiny9-
>>>>> attiny10_datasheet.pdf
>>>>>
>>>>> Also ATtiny20, ATtiny40.
>>>>>
>>>>> How do you handle such cores?
>>>>>>
>>>>>> I don't see here anything preventing usage of all 32 GPRs, resulting,
>>>>>> of course, in an inaccurate emulation.
>>>>>>
>>>>>> Thanks,
>>>>>> Aleksandar
>>>>>>
>>>>>
>>>>
>>>> --
>>>> Best Regards,
>>>> Michael Rolnik
>>>>
>>>
>>
>> --
>> Best Regards,
>> Michael Rolnik
>>
>

[-- Attachment #2: Type: text/html, Size: 8732 bytes --]

  reply	other threads:[~2019-12-02  9:02 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-27 17:52 [PATCH v37 00/17] QEMU AVR 8 bit cores Michael Rolnik
2019-11-27 17:52 ` [PATCH v37 01/17] target/avr: Add outward facing interfaces and core CPU logic Michael Rolnik
2019-11-27 22:25   ` Philippe Mathieu-Daudé
2019-11-28 12:04     ` Michael Rolnik
2019-11-27 17:52 ` [PATCH v37 02/17] target/avr: Add instruction helpers Michael Rolnik
2019-11-27 22:26   ` Philippe Mathieu-Daudé
2019-11-27 17:52 ` [PATCH v37 03/17] target/avr: Add instruction decoding Michael Rolnik
2019-11-27 17:52 ` [PATCH v37 04/17] target/avr: Add instruction translation - Registers definition Michael Rolnik
2019-11-27 17:52 ` [PATCH v37 05/17] target/avr: Add instruction translation - Arithmetic and Logic Instructions Michael Rolnik
2019-11-30 10:33   ` Aleksandar Markovic
2019-11-30 16:29     ` Aleksandar Markovic
2019-11-30 17:05       ` Michael Rolnik
2019-11-30 17:14         ` Aleksandar Markovic
2019-11-30 23:11         ` Aleksandar Markovic
2019-12-02  7:41           ` Michael Rolnik
2019-12-02  8:55             ` Aleksandar Markovic
2019-12-02  9:01               ` Aleksandar Markovic [this message]
2019-11-27 17:52 ` [PATCH v37 06/17] target/avr: Add instruction translation - Branch Instructions Michael Rolnik
2019-11-27 17:52 ` [PATCH v37 07/17] target/avr: Add instruction translation - Bit and Bit-test Instructions Michael Rolnik
2019-12-05 12:28   ` Aleksandar Markovic
2019-12-05 13:17     ` Michael Rolnik
2019-12-05 13:28       ` Michael Rolnik
2019-11-27 17:52 ` [PATCH v37 08/17] target/avr: Add instruction translation - MCU Control Instructions Michael Rolnik
2019-11-27 17:52 ` [PATCH v37 09/17] target/avr: Add instruction translation - CPU main translation function Michael Rolnik
2019-11-27 17:52 ` [PATCH v37 10/17] target/avr: Add instruction disassembly function Michael Rolnik
2019-12-02  0:28   ` Aleksandar Markovic
2019-12-02  7:04     ` Michael Rolnik
2019-12-02 10:12       ` Aleksandar Markovic
2019-12-02 12:01       ` Aleksandar Markovic
2019-12-03 11:18       ` Philippe Mathieu-Daudé
2019-12-03 14:24         ` Michael Rolnik
2019-11-27 17:52 ` [PATCH v37 11/17] target/avr: Add limited support for USART and 16 bit timer peripherals Michael Rolnik
2019-11-27 17:52 ` [PATCH v37 12/17] target/avr: Add example board configuration Michael Rolnik
2019-11-30 10:49   ` Aleksandar Markovic
2019-11-30 16:57     ` Michael Rolnik
2019-12-03 11:29       ` Philippe Mathieu-Daudé
2019-11-27 17:52 ` [PATCH v37 13/17] target/avr: Register AVR support with the rest of QEMU Michael Rolnik
2019-12-05 12:55   ` Aleksandar Markovic
2019-11-27 17:52 ` [PATCH v37 14/17] target/avr: Update build system Michael Rolnik
2019-11-27 17:52 ` [PATCH v37 15/17] target/avr: Add boot serial test Michael Rolnik
2019-11-27 17:52 ` [PATCH v37 16/17] target/avr: Add Avocado test Michael Rolnik
2019-11-27 17:52 ` [PATCH v37 17/17] target/avr: Update MAINTAINERS file Michael Rolnik
2019-11-28 20:19   ` Philippe Mathieu-Daudé
2019-11-30 13:43   ` Aleksandar Markovic
2019-11-27 21:06 ` [PATCH v37 00/17] QEMU AVR 8 bit cores Aleksandar Markovic
2019-11-28 12:28   ` Michael Rolnik
2019-11-28 13:22     ` Aleksandar Markovic
2019-11-28 13:25       ` Michael Rolnik
2019-11-28 13:31         ` Aleksandar Markovic
2019-11-28 16:20           ` Alex Bennée
2019-11-28 19:32             ` Aleksandar Markovic
2019-11-29 22:49             ` Aleksandar Markovic
2019-11-29 23:52               ` Aleksandar Markovic
2019-11-28 13:34         ` Philippe Mathieu-Daudé
2019-11-28 13:41           ` Aleksandar Markovic
2019-11-28 13:46             ` Michael Rolnik
2019-11-28 14:16               ` Philippe Mathieu-Daudé
2019-11-28 14:50                 ` Aleksandar Markovic
2019-11-28 18:09                 ` Aleksandar Markovic
2019-12-01 13:09               ` Aleksandar Markovic
2019-12-01 13:11                 ` Aleksandar Markovic
2019-11-29  9:24     ` Sarah Harris
2019-11-28 15:00 ` Aleksandar Markovic
2019-11-30 11:28 ` Aleksandar Markovic
2019-11-30 17:00   ` Michael Rolnik
2019-12-02  9:35     ` Aleksandar Markovic
2019-12-02  9:59       ` Aleksandar Markovic
2019-12-02 13:24         ` Michael Rolnik
2019-12-02 14:01           ` Aleksandar Markovic
2019-12-02 16:09             ` Michael Rolnik
2019-12-02 21:15               ` Aleksandar Markovic
2019-12-02 23:37                 ` Aleksandar Markovic
2019-12-03  1:17                   ` Aleksandar Markovic
2019-12-03  1:48                     ` Aleksandar Markovic
2019-12-03  9:56                       ` Michael Rolnik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAL1e-=jPCDQu2TOgj1qN1Rm8tpWRXrKg_hzVUgr5gxXvFpvggQ@mail.gmail.com' \
    --to=aleksandar.m.mail@gmail.com \
    --cc=dovgaluk@ispras.ru \
    --cc=imammedo@redhat.com \
    --cc=me@xcancerberox.com.ar \
    --cc=mrolnik@gmail.com \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.