Re: [Mono-dev] ARM/NativeClient port

2013-02-22 Thread Zoltan Varga
Hi, I added some comments using the github review system. The rest of the stuff looks ok, All the #ifdefs make the code look a bit ugly, but I don't know how else to do it. So its ok. Zoltan On Thu, Feb 21, 2013 at 6:04 PM, Nikolay Igotti olo...@google.com wrote: Hi,

Re: [Mono-dev] ARM/NativeClient port

2013-02-21 Thread Nikolay Igotti
Hi, This pull request https://github.com/mono/mono/pull/571 implements approach suggested (only jumptables are no longer bound to domain, as trampolines init happens eariler than root domain init) and it would be great to have change reviewed and integrated. It passes SciMark and few other

Re: [Mono-dev] ARM/NativeClient port

2013-02-05 Thread Nikolay Igotti
Hi Paolo, On Mon, Feb 4, 2013 at 6:36 PM, Paolo Molaro lu...@oddwiz.org wrote: 8. All bl/blx must be bundle-end aligned and LR is masked before return, as everything else in 3. Can you define precisely what a bundle is in this context? 16 bytes? Does it need to be aligned? Do the

Re: [Mono-dev] ARM/NativeClient port

2013-02-05 Thread Nikolay Igotti
Hi Zoltan, Good idea, but unfortunately for [reg + reg] loads it's hard to easily verify that address does not escapes sandbox, so NaCL only allows [reg + imm] addressing mode. So far, my approach is to augment MonoDomain with jumptable field, and replace inline jumptable with access to

Re: [Mono-dev] ARM/NativeClient port

2013-02-04 Thread Nikolay Igotti
Hi Zoltan, For PC-relative addressing at least 2 conditions has to be satisfied: 1. code must know which PC it runs at 2. offset to data must be smaller than 4K to fit into immediate encoding If we're not using inline constant pools, it would lead to rather tricky memory layout of code

Re: [Mono-dev] ARM/NativeClient port

2013-02-04 Thread Paolo Molaro
On 01/30/13 Nikolay Igotti wrote: 1. all code/data access has to be in lower 1G range of address space 2. all branch targets have to be 16 bytes (bundle) aligned, unless it's direct branch to the instruction which need no masking (see 3.) 3. code with register arguments (loads,

Re: [Mono-dev] ARM/NativeClient port

2013-02-04 Thread Zoltan Varga
Hi, On Mon, Feb 4, 2013 at 10:34 AM, Nikolay Igotti olo...@google.com wrote: Hi Zoltan, For PC-relative addressing at least 2 conditions has to be satisfied: 1. code must know which PC it runs at 2. offset to data must be smaller than 4K to fit into immediate encoding If we're not

Re: [Mono-dev] ARM/NativeClient port

2013-02-03 Thread Zoltan Varga
Hi, We're working on implementation of Mono JIT/ARM for Native Client, and want to discuss certain details about design of our solution. Native Client's sandboxing mechanism, being a SFI solution, has rather strict limitations on how verifiable machine code may look like. To be precise:

[Mono-dev] ARM/NativeClient port

2013-01-30 Thread Nikolay Igotti
Hi, We're working on implementation of Mono JIT/ARM for Native Client, and want to discuss certain details about design of our solution. Native Client's sandboxing mechanism, being a SFI solution, has rather strict limitations on how verifiable machine code may look like. To be precise: