llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
29.09k stars 12k forks source link

[M68k] Add floating point support #61744

Open mshockwave opened 1 year ago

mshockwave commented 1 year ago

Add supports for floating pointer registers, basic instructions and inline assembly.

Foundation

Basic instruction definitions

Instruction definitions and MC supports for common FP instructions, for instance:

Advanced instruction supports

llvmbot commented 1 year ago

@llvm/issue-subscribers-backend-m68k

0x59616e commented 1 year ago

Hello @mshockwave ,

May I inquire if we have any plans or milestones established? Additionally, is there a corresponding to-do list for said milestones?

mshockwave commented 1 year ago

Hello @mshockwave ,

May I inquire if we have any plans or milestones established? Additionally, is there a corresponding to-do list for said milestones?

Yeah I will put more detailed milestones for this. In the short term, we have to pass llvm-test-suite, which relies on inline assembly with floating point constructions. For instance:

__asm__ volatile ("fmove%.l %0, %!" : : "dm" (cw))

So for that, we at least need floating pointer register definitions and MC supports for commonly-used floating point instructions.

mshockwave commented 1 year ago

UPDATE: just updated the description to add (preliminary) roadmap for this task.

0x59616e commented 1 year ago

It appears that this is a large-scale project. I'm wondering if it's possible to divide these tasks and list them in a table format ? This could help us keep track of which items are currently under development and avoid any potential duplication of effort.

Something like this: item picker
register support aaa
instruction mc support bbb
inline support ccc
mshockwave commented 1 year ago

It appears that this is a large-scale project. I'm wondering if it's possible to divide these tasks and list them in a table format ? This could help us keep track of which items are currently under development and avoid any potential duplication of effort.

Something like this:

item picker register support aaa instruction mc support bbb inline support ccc

Yes I agree. I've created issues for these tasks. Please put yourself as assignee if you want to work on that.

0x59616e commented 1 year ago

Thanks ! Looks like we have so much fun to do.

glaubitz commented 8 months ago

Any news on the M68k backend?