Development

NAVIGATION
CATEGORIES
REFERRENCE
LINKS
  • Building Mono on Linux/Alpha

    12 answers - 239 bytes - related search similar search Add To My Delicious Add To My Stumble Upon Add To My Google Mark Add To My Facebook Add To My Digg Add To My Reddit

    Hello Zoltan,
    Here is another set of patches for common files. Please, review.
    Thank you,
    Sergey.
    tsv (AT) solvo (DOT) ru
    Mono-devel-list mailing list
    Mono-devel-list (AT) lists (DOT) ximian.com
  • No.1 | | 276 bytes | |

    Hello,
    Here is another set of patches for common files. Please, review.
    The patches look fine, but it seems like some of the new files are
    missing (mini-alpha.c)
    Mono-devel-list mailing list
    Mono-devel-list (AT) lists (DOT) ximian.com
  • No.2 | | 695 bytes | |

    Miguel de Icaza wrote:

    >Hello,
    >


    >
    >>Here is another set of patches for common files. Please, review.

    >
    >>

    >
    >The patches look fine, but it seems like some of the new files are
    >missing (mini-alpha.c)


    I am going to send them later. I guess there will be some suggestions
    about them.
    The previous patches are trivial and should not affect other arches. :)

    Thank you,
    Sergey.
    tsv (AT) solvo (DOT) ru

    Mono-devel-list mailing list
    Mono-devel-list (AT) lists (DOT) ximian.com
  • No.3 | | 607 bytes | |

    Miguel de Icaza wrote:

    >Hello,
    >


    >
    >>Here is another set of patches for common files. Please, review.

    >
    >>

    >
    >The patches look fine, but it seems like some of the new files are
    >missing (mini-alpha.c)


    Here it goes. The files contain a lot of trace messages. Please review.

    Thank you,
    Sergey.
    tsv (AT) solvo (DOT) ru

    Mono-devel-list mailing list
    Mono-devel-list (AT) lists (DOT) ximian.com
  • No.4 | | 781 bytes | |

    Hi,

    The patch is now in SVN.

    thanks

    Zoltan

    7/21/06, Sergey Tikhonov <tsv (AT) solvo (DOT) ruwrote:
    Miguel de Icaza wrote:
    >
    >Hello,
    >
    >
    >
    >>Here is another set of patches for common files. Please, review.
    >>
    >>

    >
    >The patches look fine, but it seems like some of the new files are
    >missing (mini-alpha.c)
    >
    >

    Here it goes. The files contain a lot of trace messages. Please review.

    Thank you,
    Sergey.
    tsv (AT) solvo (DOT) ru
    >
    >
    >
    >
    >


    Mono-devel-list mailing list
    Mono-devel-list (AT) lists (DOT) ximian.com
  • No.5 | | 1102 bytes | |

    Zoltan Varga wrote:

    Hi,

    The patch is now in SVN.

    Thank you. There were other patches to common files that haven't got to
    SVN yet (mono-linux-alpha2.patch).

    I have a question:
    Alpha arch doesn't have unassigned compare for floats, but IR seems to
    require it. What would be the best place to
    implement taking abs values for arguments to compare and do comparition?
    I was thinking of using inssel-alpha.brg file to add instruction like
    "stmt: P_CND_BRANCH (P_CMPARE(freg, freg)) { }"
    (I found usage like this in inssel-arm.brg) to implement abs of fregs
    and do compare, but I read documentation that this would limit
    optimization and register allocation logic.
    Another thing - Alpha doesn't have special flag register to hold
    comparition result and uses some of common registers. Right now I am using
    one predefined register, but this limit its usage for other ops. I would
    like to use local register allocation to allocate register to hold
    compare results and use it in conditional branch instruction.

    Thank you,
  • No.6 | | 1140 bytes | |

    Hi,

    I have a question:
    Alpha arch doesn't have unassigned compare for floats, but IR seems to
    require it. What would be the best place to
    implement taking abs values for arguments to compare and do comparition?
    I was thinking of using inssel-alpha.brg file to add instruction like
    "stmt: P_CND_BRANCH (P_CMPARE(freg, freg)) { }"
    (I found usage like this in inssel-arm.brg) to implement abs of fregs
    and do compare, but I read documentation that this would limit
    optimization and register allocation logic.

    I don't know how that would limit optimization, so I think it is fine for now.

    Another thing - Alpha doesn't have special flag register to hold
    comparition result and uses some of common registers. Right now I am using
    one predefined register, but this limit its usage for other ops. I would
    like to use local register allocation to allocate register to hold
    compare results and use it in conditional branch instruction.

    This is not currently possible, ia64 has the same problem and uses a dedicated
    predicate register.

    Zoltan

    Thank you,
  • No.7 | | 2128 bytes | |

    Hello Zoltan,

    Hi,
    >
    >I have a question:
    >Alpha arch doesn't have unassigned compare for floats, but IR seems to
    >require it. What would be the best place to
    >implement taking abs values for arguments to compare and do comparition?
    >I was thinking of using inssel-alpha.brg file to add instruction like
    >"stmt: P_CND_BRANCH (P_CMPARE(freg, freg)) { }"
    >(I found usage like this in inssel-arm.brg) to implement abs of fregs
    >and do compare, but I read documentation that this would limit
    >optimization and register allocation logic.
    >
    >

    I don't know how that would limit optimization, so I think it is fine
    for now.
    >
    >Another thing - Alpha doesn't have special flag register to hold
    >comparition result and uses some of common registers. Right now I am
    >using
    >one predefined register, but this limit its usage for other ops. I would
    >like to use local register allocation to allocate register to hold
    >compare results and use it in conditional branch instruction.
    >>

    >

    This is not currently possible, ia64 has the same problem and uses a
    dedicated
    predicate register.

    , I was able to implement float compare (including unordered compare)
    in brg file. It really simplified things.
    Almost all basic-float tests passed.

    I have a problem with handling of exceptions (divide by zero exception
    to be exact).
    In my current implementation the CEE_DIV opcode uses mono_idiv function
    which does actual division.
    This method is called without wrapper function (I guess this is because
    it is registered as opcode_emulation) and
    it doesn't have flag "save_lmf" set. So I don't save LMF for it and
    couldn't find exception handler. :(
    Do I understand the current logic with unmanaged opcode emulation
    functions correctly?
    Do I need to implement div opcode? (yes I guess I need, but I was
    thinking to do it later)

    Thank you,
  • No.8 | | 2379 bytes | |

    Hi,

    The code in mini.c is incorrect, _idiv and its friends should be
    registered with
    no_throw set to FALSE, instead of TRUE. I will fix it in a minute.

    Zoltan

    8/15/06, Sergey Tikhonov <tsv (AT) solvo (DOT) ruwrote:
    Hello Zoltan,

    Hi,
    >
    >I have a question:
    >Alpha arch doesn't have unassigned compare for floats, but IR seems to
    >require it. What would be the best place to
    >implement taking abs values for arguments to compare and do comparition?
    >I was thinking of using inssel-alpha.brg file to add instruction like
    >"stmt: P_CND_BRANCH (P_CMPARE(freg, freg)) { }"
    >(I found usage like this in inssel-arm.brg) to implement abs of fregs
    >and do compare, but I read documentation that this would limit
    >optimization and register allocation logic.
    >
    >

    I don't know how that would limit optimization, so I think it is fine
    for now.
    >
    >Another thing - Alpha doesn't have special flag register to hold
    >comparition result and uses some of common registers. Right now I am
    >using
    >one predefined register, but this limit its usage for other ops. I would
    >like to use local register allocation to allocate register to hold
    >compare results and use it in conditional branch instruction.
    >>

    >

    This is not currently possible, ia64 has the same problem and uses a
    dedicated
    predicate register.

    , I was able to implement float compare (including unordered compare)
    in brg file. It really simplified things.
    Almost all basic-float tests passed.

    I have a problem with handling of exceptions (divide by zero exception
    to be exact).
    In my current implementation the CEE_DIV opcode uses mono_idiv function
    which does actual division.
    This method is called without wrapper function (I guess this is because
    it is registered as opcode_emulation) and
    it doesn't have flag "save_lmf" set. So I don't save LMF for it and
    couldn't find exception handler. :(
    Do I understand the current logic with unmanaged opcode emulation
    functions correctly?
    Do I need to implement div opcode? (yes I guess I need, but I was
    thinking to do it later)

    Thank you,
  • No.9 | | 254 bytes | |

    Zoltan Varga wrote:
    Hi,
    The code in mini.c is incorrect, _idiv and its friends should be
    registered with
    no_throw set to FALSE, instead of TRUE. I will fix it in a minute.
    Thank you. Now it works as expected. :)
    Regards,
  • No.10 | | 545 bytes | |

    Hello Zoltan,

    What is required to port debugging support in mono? I did all required
    changes in consfigure.in and Makefile.am in mini.
    All necessary *debug* files are build, but it seems that it doesn't
    work. I've seen info that current support of debugger is
    somewhat under construction. I checked for docs, but can't find any.
    For now I just need a bare minimum - like install breakpoint and stop at
    it, ability to examine local and global vars. :)
    Does the current code support this?

    Regards,
  • No.11 | | 753 bytes | |

    Hello,

    What is required to port debugging support in mono? I did all required
    changes in consfigure.in and Makefile.am in mini.
    All necessary *debug* files are build, but it seems that it doesn't
    work. I've seen info that current support of debugger is
    somewhat under construction. I checked for docs, but can't find any.
    For now I just need a bare minimum - like install breakpoint and stop at
    it, ability to examine local and global vars. :)
    Does the current code support this?

    The majority of the debugger support lives in the module `debugger' on
    SVN, and it has its own share of code to port.

    Mono-devel-list mailing list
    Mono-devel-list (AT) lists (DOT) ximian.com
  • No.12 | | 914 bytes | |

    Hello Zoltan,

    Here is another set of patches for mono on Linux/Alpha.
    What is changed:
    - Reworked passing of arguments on stack - now it is more close to ABI
    (and same as gcc) and safe from stack allocation leaks
    - New argument passing schema would allow to start pass valuetypes in
    registers (as native methods expect)
    - Fixed - not to modify stack pointer
    - Added implemetation of lconv_to_i/u4
    - Some opcode implemetation and fixes
    - Fixed strtod for Alpha
    - Added native opcodes patch missed from previous patchset

    With all of that I was able to build mcs compiler and using it build all
    assembles in mcs directory. :)
    So, now it could be considered that the mono is supported on Linux/Alpha
    as betta version. :)
    Number of failed tests in mono/tests down to 7. Most of the pinvokes
    with complex parameters, vararg and one thread tests.

    Regards,

Re: Building Mono on Linux/Alpha


max 4000 letters.
Your nickname that display:
In order to stop the spam: 1 + 1 =
QUESTION ON "Development"

EMSDN.COM