--- Log opened Wed Jul 17 00:00:30 2013 | ||
_franck_ | anyone knows a "bit reversing" program (reverse bit order of bytes in a binary file) ? I did it myself but I would like to have an "official" one | 07:24 |
---|---|---|
stekern | _franck_: I've used srec for reversing byte order, but I don't think it can do bit reversing | 08:06 |
_franck_ | well, I think I'll patch flashcp from mtd-utils to do the reversal before write the data | 08:18 |
_franck_ | (I'm updating the altera fpga epcs flash from linux /dev/mtd interface) | 08:19 |
LoneTech_ | good idea | 09:03 |
-!- LoneTech_ is now known as LoneTech | 09:03 | |
stekern | olofk: do you still think I look fat? | 10:58 |
stekern | poke53281: I stumbled upon a tiny winy bug in your ITLBRefill hack: https://github.com/s-macke/jor1k/blob/master/js/worker/cpu.js#L486 | 17:48 |
stekern | only reason I noticed it was because I put that into qemu too | 17:49 |
stekern | made quite a difference, gcc hello_world.c went from taking 1 minute to 12 seconds | 17:49 |
stekern | when you rerun it, it runs faster, then the difference was 20 seconds vs 3 seconds | 17:50 |
stekern | and I think I've figured out the slowness, inetd somehow get upset during boot (maybe the emulation is doing something weird after inetd has started) | 17:52 |
stekern | so, doing a kill -HUP on the inetd process calms it down | 17:52 |
stekern | well.. figured out was perhaps an overstatement, made some progress on the matter is maybe more appropriate | 17:54 |
poke53281 | thanks. I will take a look. No time at the moment | 18:02 |
stekern | sure, no hurry | 18:23 |
poke53281 | Oh, I run the wrong exception handler | 18:29 |
poke53281 | I am not sure, but maybe the tlb miss handler changed in the last 8 months in the kernel. So I am not sure if my miss handler is correct. I wanted to check this before I am updating the official version. | 18:34 |
poke53281 | But 20s to 3s is quite amazing. | 18:35 |
poke53281 | and if you wonder about some design decisions in Javascript. Because of some optimizations of the Javascript engines uint is treated as double and int is treated as int. | 18:45 |
poke53281 | this.instlb = (tlbtr ^ tlmbr) & 0xFFFFE000; // slow | 18:45 |
poke53281 | this.instlb = ((tlbtr ^ tlmbr) >> 13) << 11; // fast | 18:45 |
poke53281 | This some funny consequences. Both comments are equivalent, but in the slow case the number could is transformed to and uint and therefore treated as double. | 18:46 |
poke53281 | Note, that in Javascript there are two commands for a right shift >> for ints and >>> for uints. | 18:48 |
poke53281 | in principle every number in Javascript is a double. | 18:51 |
stekern | ah, I see | 19:04 |
stekern | I think that asm code in head.S have been pretty much the same in the last 8 month | 19:06 |
stekern | I plan to add proper support to the kernel, and rewrite those handlers as if they were hardware | 19:07 |
stekern | but using your handlers gives me good leverage, I pretty much copied them straight and just changed the mem and spr interface | 19:09 |
poke53281 | Nice. Looking forward | 19:10 |
poke53281 | So, you have to analyze the kernel too to get the pointers | 19:12 |
stekern | yeah, but they hardly change | 19:12 |
--- Log closed Thu Jul 18 00:00:32 2013 |
Generated by irclog2html.py 2.15.2 by Marius Gedminas - find it at mg.pov.lt!