Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Aug 04 03:51
    Build #614 passed
  • Aug 04 03:50

    charlesbetros on master

    Write exit label for runctions … (compare)

  • Aug 03 04:38
    Build #613 passed
  • Aug 03 04:36

    charlesbetros on master

    Add goto emitter (compare)

  • Aug 03 04:05
    Build #612 passed
  • Aug 03 04:04

    charlesbetros on master

    Working on adding end block. Clear function on close brace i… Merge branch 'master' into feat… and 3 more (compare)

  • Aug 03 04:04
    charlesbetros closed #22
  • Aug 03 04:03
    Build #610 passed
  • Aug 03 04:03
    charlesbetros opened #22
  • Aug 03 04:02

    charlesbetros on EndBlockEmitter

    Add test for const token parse Clear function on close brace i… Add rotate and shift ops and 6 more (compare)

  • Aug 01 14:29
    Build #609 passed
  • Aug 01 14:27
    Build #608 passed
  • Aug 01 14:23

    charlesbetros on RotateShift

    (compare)

  • Aug 01 14:23

    charlesbetros on master

    Forgot go add emitter to the to… Merge pull request #21 from Cos… (compare)

  • Aug 01 14:23
    charlesbetros closed #21
  • Aug 01 14:22
    charlesbetros opened #21
  • Aug 01 14:22

    charlesbetros on RotateShift

    Forgot go add emitter to the to… (compare)

  • Aug 01 13:19
    Build #607 passed
  • Aug 01 12:58

    charlesbetros on master

    Add rotate and shift ops Merge pull request #20 from Cos… (compare)

  • Aug 01 12:58
    charlesbetros closed #20
Marcelo Caetano
@marcelocaetano
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
including RPi Zero
Marcelo Caetano
@marcelocaetano
I'm going to start evaluating the Keil armasm because I already have it installed in my computer
Matthijs ter Woord
@mterwoord
iirc pi zero is arm6?
Marcelo Caetano
@marcelocaetano
it is armv6