diff mbox series

disas: Add LoongArch support

Message ID 20220804172939.325306-1-huqi@loongson.cn
State New
Headers show
Series disas: Add LoongArch support | expand

Commit Message

Qi Hu Aug. 4, 2022, 5:29 p.m. UTC
Signed-off-by: Qi Hu <huqi@loongson.cn>
---
 disas.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Peter Maydell Aug. 4, 2022, 6:08 p.m. UTC | #1
On Thu, 4 Aug 2022 at 18:32, Qi Hu <huqi@loongson.cn> wrote:
>

More specifically, this is adding support for disassembling
on LoongArch hosts. The handling of disassembling LoongArch
guests is already connected up.

thanks
-- PMM
Richard Henderson Aug. 4, 2022, 6:23 p.m. UTC | #2
On 8/4/22 10:29, Qi Hu wrote:
> Signed-off-by: Qi Hu <huqi@loongson.cn>
> ---
>   disas.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/disas.c b/disas.c
> index e31438f349..d44feeee46 100644
> --- a/disas.c
> +++ b/disas.c
> @@ -176,6 +176,8 @@ static void initialize_debug_host(CPUDebug *s)
>   #else
>   #error unsupported RISC-V ABI
>   #endif
> +#elif defined(__loongarch__)
> +    s->info.print_insn = print_insn_loongarch;

This is very much insufficient.  Try --target-list=i386-softmmu and watch it fail to link.
You need to modify the build rules to make certain that the loongarch disassembler is 
built for loongarch host.


r~
Qi Hu Aug. 6, 2022, 9:23 a.m. UTC | #3
On 2022/8/5 02:23, Richard Henderson wrote:
> On 8/4/22 10:29, Qi Hu wrote:
>> Signed-off-by: Qi Hu <huqi@loongson.cn>
>> ---
>>   disas.c | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/disas.c b/disas.c
>> index e31438f349..d44feeee46 100644
>> --- a/disas.c
>> +++ b/disas.c
>> @@ -176,6 +176,8 @@ static void initialize_debug_host(CPUDebug *s)
>>   #else
>>   #error unsupported RISC-V ABI
>>   #endif
>> +#elif defined(__loongarch__)
>> +    s->info.print_insn = print_insn_loongarch;
>
> This is very much insufficient.  Try --target-list=i386-softmmu and 
> watch it fail to link.
> You need to modify the build rules to make certain that the loongarch 
> disassembler is built for loongarch host.
>
>
> r~

I realized that "target/loongarch/disas.c" is only used for loongarch 
target . When the target is not "loongarch", the function 
"print_insn_loongarch" will not be compiled. Next I will add loongarch 
support to "disams/*".


Thanks.

Qi
diff mbox series

Patch

diff --git a/disas.c b/disas.c
index e31438f349..d44feeee46 100644
--- a/disas.c
+++ b/disas.c
@@ -176,6 +176,8 @@  static void initialize_debug_host(CPUDebug *s)
 #else
 #error unsupported RISC-V ABI
 #endif
+#elif defined(__loongarch__)
+    s->info.print_insn = print_insn_loongarch;
 #elif defined(__aarch64__)
     s->info.cap_arch = CS_ARCH_ARM64;
 #elif defined(__alpha__)