From: Jan Bobek <jan.bobek@gmail.com> To: Richard Henderson <richard.henderson@linaro.org>, qemu-devel@nongnu.org Cc: "Alex Bennée" <alex.bennee@linaro.org>, "Peter Maydell" <peter.maydell@linaro.org>, "Stefan Hajnoczi" <stefanha@redhat.com> Subject: Re: [Qemu-devel] [RISU PATCH 0/5] Fix RISU build for i386 Date: Thu, 11 Apr 2019 21:43:37 -0400 [thread overview] Message-ID: <a82ec99d-8b5e-6898-c0a7-a3de8e2be07f@gmail.com> (raw) In-Reply-To: <e38bf007-440c-9d6d-c837-e1e52b661075@linaro.org> [-- Attachment #1: Type: text/plain, Size: 1938 bytes --] Sorry for the delayed reply, the U.S. tax deadline has caught up with me, so I spent the last two evenings doing my taxes. (Yuck!) Anyway... On 4/8/19 6:18 PM, Richard Henderson wrote: > On 4/8/19 8:27 AM, Jan Bobek wrote: >> 2. Note the '-std=c99' switch in the command-line above; without it, >> GCC defines the symbol 'i386' to 1 and the preprocessor magic for >> including arch-specific headers in risu.h breaks. Does anyone have >> an idea how to fix this in a more robust way? > > Adding -U$(ARCH) to the command line is probably as good a fix as any. I didn't know about -U, nice! >> 3. gas (the GNU assembler) chokes on the syntax of test_i386.s; that's >> why I'm using nasm as the assembler above. Is that intentional? I >> haven't found the nasm dependency mentioned anywhere. > > I think rewriting to not require nasm is better. Agreed. >> Also, nasm will happily emit the UD1 opcode (0F B9) with no >> operands (see test_i386.s). That's a bit surprising to me, since >> Intel's Software Developer's Manual says UD1 has two operands; I'd >> expect at least a follow-up ModR/M byte. gas refuses to assemble >> UD1 with no operands, and gdb's disassembler gets confused when I >> load up the nasm's binary into risu. Is there something obvious >> that I'm missing? > > You are not missing anything -- ud1 should require a modrm byte. > > My suggestion is to use only UD1 as the "break" insn, with the different OP_* > codes encoded into the modrm byte. I had to laugh when I read this; this is *exactly* what I had in mind, but then I found out there was no ModR/M byte. >> P.S. This is my first time using git send-email, so please bear with >> me if something goes wrong and/or let me know how I can improve >> my future submissions. Thank you! > > You've done well with git send-email. ;-) Thanks a lot! :) -Jan [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 833 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Jan Bobek <jan.bobek@gmail.com> To: Richard Henderson <richard.henderson@linaro.org>, qemu-devel@nongnu.org Cc: "Peter Maydell" <peter.maydell@linaro.org>, "Alex Bennée" <alex.bennee@linaro.org>, "Stefan Hajnoczi" <stefanha@redhat.com> Subject: Re: [Qemu-devel] [RISU PATCH 0/5] Fix RISU build for i386 Date: Thu, 11 Apr 2019 21:43:37 -0400 [thread overview] Message-ID: <a82ec99d-8b5e-6898-c0a7-a3de8e2be07f@gmail.com> (raw) Message-ID: <20190412014337.AQ9wKLbVfhnlqpz8FDMgQ_wIC_U25CPnOjkDoolOer8@z> (raw) In-Reply-To: <e38bf007-440c-9d6d-c837-e1e52b661075@linaro.org> [-- Attachment #1: Type: text/plain, Size: 1938 bytes --] Sorry for the delayed reply, the U.S. tax deadline has caught up with me, so I spent the last two evenings doing my taxes. (Yuck!) Anyway... On 4/8/19 6:18 PM, Richard Henderson wrote: > On 4/8/19 8:27 AM, Jan Bobek wrote: >> 2. Note the '-std=c99' switch in the command-line above; without it, >> GCC defines the symbol 'i386' to 1 and the preprocessor magic for >> including arch-specific headers in risu.h breaks. Does anyone have >> an idea how to fix this in a more robust way? > > Adding -U$(ARCH) to the command line is probably as good a fix as any. I didn't know about -U, nice! >> 3. gas (the GNU assembler) chokes on the syntax of test_i386.s; that's >> why I'm using nasm as the assembler above. Is that intentional? I >> haven't found the nasm dependency mentioned anywhere. > > I think rewriting to not require nasm is better. Agreed. >> Also, nasm will happily emit the UD1 opcode (0F B9) with no >> operands (see test_i386.s). That's a bit surprising to me, since >> Intel's Software Developer's Manual says UD1 has two operands; I'd >> expect at least a follow-up ModR/M byte. gas refuses to assemble >> UD1 with no operands, and gdb's disassembler gets confused when I >> load up the nasm's binary into risu. Is there something obvious >> that I'm missing? > > You are not missing anything -- ud1 should require a modrm byte. > > My suggestion is to use only UD1 as the "break" insn, with the different OP_* > codes encoded into the modrm byte. I had to laugh when I read this; this is *exactly* what I had in mind, but then I found out there was no ModR/M byte. >> P.S. This is my first time using git send-email, so please bear with >> me if something goes wrong and/or let me know how I can improve >> my future submissions. Thank you! > > You've done well with git send-email. ;-) Thanks a lot! :) -Jan [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2019-04-12 1:43 UTC|newest] Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-04-08 18:27 [Qemu-devel] [RISU PATCH 0/5] Fix RISU build for i386 Jan Bobek 2019-04-08 18:27 ` Jan Bobek 2019-04-08 18:27 ` [Qemu-devel] [RISU PATCH 1/5] risu_i386: move reginfo_t and related defines to risu_reginfo_i386.h Jan Bobek 2019-04-08 18:27 ` Jan Bobek 2019-04-25 13:39 ` Alex Bennée 2019-04-25 13:39 ` Alex Bennée 2019-04-08 18:27 ` [Qemu-devel] [RISU PATCH 2/5] risu_i386: move reginfo-related code to risu_reginfo_i386.c Jan Bobek 2019-04-08 18:27 ` Jan Bobek 2019-04-25 13:39 ` Alex Bennée 2019-04-25 13:39 ` Alex Bennée 2019-04-08 18:27 ` [Qemu-devel] [RISU PATCH 3/5] risu_reginfo_i386: implement arch-specific reginfo interface Jan Bobek 2019-04-08 18:27 ` Jan Bobek 2019-04-25 13:42 ` Alex Bennée 2019-04-25 13:42 ` Alex Bennée 2019-04-08 18:27 ` [Qemu-devel] [RISU PATCH 4/5] risu_i386: implement missing CPU-specific functions Jan Bobek 2019-04-08 18:27 ` Jan Bobek 2019-04-08 18:27 ` [Qemu-devel] [RISU PATCH 5/5] risu_i386: remove old unused code Jan Bobek 2019-04-08 18:27 ` Jan Bobek 2019-04-25 13:43 ` Alex Bennée 2019-04-25 13:43 ` Alex Bennée 2019-04-08 22:18 ` [Qemu-devel] [RISU PATCH 0/5] Fix RISU build for i386 Richard Henderson 2019-04-08 22:18 ` Richard Henderson 2019-04-12 1:43 ` Jan Bobek [this message] 2019-04-12 1:43 ` Jan Bobek 2019-04-25 13:45 ` Alex Bennée 2019-04-25 13:45 ` Alex Bennée 2019-05-15 14:32 ` Jan Bobek
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=a82ec99d-8b5e-6898-c0a7-a3de8e2be07f@gmail.com \ --to=jan.bobek@gmail.com \ --cc=alex.bennee@linaro.org \ --cc=peter.maydell@linaro.org \ --cc=qemu-devel@nongnu.org \ --cc=richard.henderson@linaro.org \ --cc=stefanha@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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).