All,
We’‘re designing & coding a bunch of performance extensions to Messenger which, in our benchmarks, have increase server output by an astounding 19%. Basically, we’‘ve re-implemented parts of Messenger as native assembly calls. So far only Windows is supported but we’'re working hard on a Linux & Solaris port. Some sample code:
; Move XML node
STMFD R13!, {R14}
BL one
BL two
LDMFD R13!, {PC} ; exit .one
; Case 1 -- IQ
STMFD R13!, {R14}
...do stuff...
LDMFD R13!, {PC} ; return .two
; Case 2 -- something else
STMFD R13!, {R14}
...do stuff...
BL three
LDMFD R13!, {PC} ; return .three
; Case 3 -- kickoff B four
; no return .four
; Not a BL, so R14 unchanged
LDMFD R13!, {PC} ; returns from .three because R14 not changed.
We’‘ve also been working on a cool tool to read memory dumps – really interesting stuff if you’'re programming ASM:
*MemoryI 8FE4 +18
00008FE4 : E28F0004 : ..?â : ADR R0,&00008FF0
00008FE8 : EF000002 : ...ï : SWI "OS_Write0"
00008FEC : E1A0F00E : .ð á : MOV PC,R14
00008FF0 : 6C6C6548 : Bell : STCVSTL CP5,C6,[R12],#-&120 ; =288
00008FF4 : 0A0D216F : o!.. : BEQ &003515B8
00008FF8 : 00000000 : .... : DCD &00000000
Anyone interested in helping out?