powered by Jive Software

Announcing Messenger Full-Throttle ASM extensions


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?

Anyone interested in helping out?

I’‘d love to but I’'m knee deep in forking the project so I can turn it into VB6 application.