Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 10:56
    Build #772 passed
  • 08:49
    Build #771 passed
  • 08:35
    Build #770 passed
  • 07:47
    Build #769 passed
  • Sep 14 22:10
    Build #768 passed
  • Sep 14 20:55
    Build #767 passed
  • Sep 14 20:54
    Build #766 passed
  • Sep 14 20:41
    Build #765 passed
  • Sep 14 20:40
    Build #764 passed
  • Sep 14 20:29
    Build #763 passed
  • Sep 14 20:28
    Build #762 passed
  • Sep 12 11:38
    Build #758 passed
  • Sep 12 11:30
    Build #757 passed
  • Sep 12 11:28
    Build #756 passed
  • Sep 12 11:27
    Build #755 passed
  • Sep 12 11:26
    Build #754 passed
  • Sep 12 11:19
    Build #753 passed
  • Sep 12 11:18
    Build #752 passed
  • Sep 10 12:46
    Build #751 passed
  • Sep 10 09:19
    Build #750 passed
Charles Betros
@charlesbetros
Back
Have you had a chance to look through the XSharp repository?
Marcelo Caetano
@marcelocaetano
yes, some days ago
Charles Betros
@charlesbetros
Are you wanting to work on X# Arm or any X# platform?
Marcelo Caetano
@marcelocaetano
X# Arm would be great
I'm checking the repo out now
Marcelo Caetano
@marcelocaetano
Maybe the best place to start would be create ARM counterparts for classes in XSharp.x86 like Register, OpCode, NASM?
I understand that the work on NASM depends on what will be the Assembler selected to have the asm target file generated
Charles Betros
@charlesbetros
Yeah I think so
We will need to create a different tool runner if we don't use nasm
It will be called after whatever assembler we choose
Marcelo Caetano
@marcelocaetano
yes, we will need because NASM only supports x86
Charles Betros
@charlesbetros
Eventually we will emit our own binary but until we get to that we can use some open source. I don't know much about the options. Can you come up with some recommendations pros/cons and put it here?
Marcelo Caetano
@marcelocaetano
The first alternatives I have found are GNU Assembler (Christopher's recommendation), Keil armasm (maybe ARM company itself has more options) and Microsoft armasm
Marcelo Caetano
@marcelocaetano
GNU Assembler is open source, Keil armasm seems to generate better optimized code and Microsoft armasm works with PE/COFF format
the issue with Keil and Microsoft maybe are their license terms (I'm not sure)
But I can investigate that and come up with more details
This is all that I know so far
Kudzu
@czhower
glad to see activity..I have only jealousy till I can rejoin :)
Charles Betros
@charlesbetros
@czhower @mterwoord any thoughts on an assembler for Arm?
Matthijs ter Woord
@mterwoord
maybe something ourselves using that json stuff?
Kudzu
@czhower
I took a look a few weeks ago but didnt get a chance to deeply evaluate any of the ARM assemblers.
Matthijs ter Woord
@mterwoord
best imo would be something in .net
Kudzu
@czhower
I think we should first use something like NASM instead of direct binary emission for ARM.. easier to debug output, simpler to implement etc. Im sure int he list fo ARM assemblers there is one that is usable.
someone needs to make a list, evaluate them and present the results wtih prime candidates.
Matthijs ter Woord
@mterwoord
would be a great project for someone to get going with: find a suitable arm assembler for us...
Kudzu
@czhower
yes...!
adn gnu and there are a bunch of others. vasm looks like its current and maintained but havent looked deeper
Marcelo Caetano
@marcelocaetano
I don't think so... it only supports till ARMv4
Raspberry Pi is ARMv6
although old code should work on new processors
its list has Raspberry-Pi VideoCore IV but the line that says "architecture ARMv1 to ARMv4, including THUMB mode" let me disappointed
actually taking all the RPi models in consideration we have ARMv8 in use as well
but I think binaries developed with ARMv6 ISA would work well on ARMv8
Kudzu
@czhower
arm is backwards compat right? But yeah, generally we want smoething that is current and well maintained.
Matthijs ter Woord
@mterwoord
not sure on backwards compat..
afaict, it has a lot of variables
fpu or not, different kinds of fpu's
Marcelo Caetano
@marcelocaetano
it is not completely backwards compat... there are some old thumb instructions not supported on newest versions
there are some issues with the way some instructions are used prior to ARMv6 related to alignment
But I hope there is a way to use the ARMv8 ISA that it can run in AArch32 state and maintain compat for a lot of processor versions
Kudzu
@czhower
ok, can you or someone evalute the ARM assemblers and narrow it down to a few viable candidates?
Matthijs ter Woord
@mterwoord
we'd also need to decide on a minimum arm version we want to target?
Marcelo Caetano
@marcelocaetano
yes @czhower
Matthijs ter Woord
@mterwoord
@marcelocaetano We need a way to emit binaries, but with symbol support, so we know what symbols are at what locations
Marcelo Caetano
@marcelocaetano
ok @mterwoord
@mterwoord regarding your question about the arm version we want to target, I want to check out if we use ARMv8 T32 and A32 instructions we can at least support all Raspberry Pi versions