[maemo-developers] Java acceleration/Jazelle
From: Riku Voipio riku.voipio at movial.fiDate: Wed Jul 18 17:29:37 EEST 2007
- Previous message: Java acceleration/Jazelle
- Next message: Java acceleration/Jazelle
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Simon Pickering wrote: >> The second thought is learn the ABI convention for calling C methods >> from assembly and you can pass whatever data you need to a function >> that will do the printing for you. I'd suggest going with this route >> since it will be the most straightforward without soldering but also >> the least versatile. --You may end up rebooting many, many times and >> the less overhead there is to initialize before playing around the >> faster you can try a new idea. At any rate, I believe the ABI changed >> when we went to the armel format and so there's a handy description on >> changes to system calls and so forth here: >> http://wiki.debian.org/ArmEabiPort Sorry if I'm pointing out anything >> that might be obvious, these are just things I had to work through >> when I was working on this type of thing on OS-less boards. >> > > Thanks for that pointer, I'd forgotten about that page. It does say how > registers are passed (but I think it says to system calls rather than some > random function). I'll have to look at it again and do some more digging (and in > the meantime save the value of R14 to an array each time the handler code is > called, then print it out in C after the asm has completed). > That part is talking about normal function calls. So you have 4 registers to pass arguments, rest is passed in stack. > Does anyone know whether there are there any good docs/books on ARM asm > programming, telling people these sort of things? This is an interesting (and > hopefully useful) learning experience, but can be really frustrating when I know > what I want to do, and pretty much how to, but not quite! :) E.g. calling > functions in linked libraries, how to call .s file functions from C, what is and > isn't allowed in in-line asm, etc. > I don't think there is really such a book, but you can use gcc -S to see what kind of assembler gcc generates to call functions. Otoh it sounds what want to know is already in jalimo jamvm in src/os/linux/arm/callNative.S =) Since the virtual machine is not only running the bytecode, taking jamvm (or something else) as the base could make sense.
- Previous message: Java acceleration/Jazelle
- Next message: Java acceleration/Jazelle
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]