Fwd: ASM for Blackberry

"Andrei Loskutov" <[email protected]>
Newsgroups gmane.comp.java.objectweb.asm
Message-ID <[email protected]>
Hi Jocky,

I'm forwarding your message to the asm mailing list.

-- 
Kind regards,
Mit freundlichen Grüßen
Andrei Loskutov

@Home: http://andrei.gmxhome.de/

------- Forwarded message -------
From: JockyW <[email protected]>
To: [email protected]
Subject: ASM for Blackberry
Date: Fri, 14 May 2010 14:58:20 +0200

Hi Andrei,

I have started work on a JVM assembler for the RIM Blackberry JVM and found
ASM and Jasmin.
To avoid reinventing the wheel I am trying to assess how difficult it is to
adapt ASM (or Jasmin) for this purpose.

With Blackberry JDE .java files are compiled to .class and these are again
compiled to so-called .cod files. The .cod files are loaded on the device.
I
have a .cod disassembler which can produce assembler source files (see
attached examples).

Some Blackberry opcodes differ from the Sun standard. The opcodes list is
also attached.

It would be great if you can advise me if it is feasible to extend ASM or
Jasmin. Many thanks in advance.

Best Regards,
Jocky
RIM-opcodes.txt (text/plain, 3.9 KB)
OC(dec)Descr
#0 breakpoint
#1 invokevirtual
#2 invokeinterface
#3 invokenonvirtual
#4 invokenonvirtual_lib
#5 invokespecial
#6 invokespecial_lib
#7 invokestatic
#8 invokestatic_lib
#9 iinvokenative
#10 invokenative
#11 linvokenative
#12 jumpspecial
#13 jumpspecial_lib
#14 enter
#15 enter_wide
#16 xenter
#17 xenter_wide
#18 synch
#19 synch_static
#20 clinit_wait
#21 ireturn_bipush
#22 ireturn_sipush
#23 ireturn_iipush
#24 ireturn
#25 ireturn_field
#26 ireturn_field_wide
#27 areturn
#28 areturn_field
#29 areturn_field_wide
#30 lreturn
#31 return
#32 clinit_return
#33 noenter_return
#34 aconst_null
#35 iconst_0
#36 bipush
#37 sipush
#38 iipush
#39 lipush
#40 ldc
#41 unused_29
#42 ldc_unicode
#43 unused_2b
#44 iconst_1
#45 arrayinit
#46 unused_2e
#47 tableswitch
#48 unused_30
#49 iload
#50 iload_wide
#51 aload
#52 aload_wide
#53 lload
#54 lload_wide
#55 iload_0
#56 iload_1
#57 iload_2
#58 iload_3
#59 iload_4
#60 iload_5
#61 iload_6
#62 iload_7
#63 aload_0
#64 aload_1
#65 aload_2
#66 aload_3
#67 aload_4
#68 aload_5
#69 aload_6
#70 aload_7
#71 istore
#72 istore_wide
#73 astore
#74 astore_wide
#75 lstore
#76 lstore_wide
#77 istore_0
#78 istore_1
#79 istore_2
#80 istore_3
#81 istore_4
#82 istore_5
#83 istore_6
#84 istore_7
#85 astore_0
#86 astore_1
#87 astore_2
#88 astore_3
#89 astore_4
#90 astore_5
#91 astore_6
#92 astore_7
#93 putfield_return
#94 putfield_return_wide
#95 putfield
#96 putfield_wide
#97 lputfield
#98 lputfield_wide
#99 getfield
#100 getfield_wide
#101 lgetfield
#102 lgetfield_wide
#103 aload_0_getfield
#104 aload_0_getfield_wide
#105 putstatic
#106 putstatic_lib
#107 lputstatic
#108 lputstatic_lib
#109 getstatic
#110 getstatic_lib
#111 lgetstatic
#112 lgetstatic_lib
#113 i2b
#114 i2s
#115 i2c
#116 i2l
#117 l2i
#118 ineg
#119 lneg
#120 iinc
#121 iinc_wide
#122 iadd
#123 ladd
#124 isub
#125 lsub
#126 imul
#127 lmul
#128 idiv
#129 ldiv
#130 irem
#131 lrem
#132 iand
#133 land
#134 ior
#135 lor
#136 ixor
#137 lxor
#138 ishl
#139 lshl
#140 ishr
#141 lshr
#142 iushr
#143 lushr
#144 lcmp
#145 if_icmpeq
#146 if_acmpeq
#147 ifeq
#148 if_icmpne
#149 if_acmpne
#150 ifne
#151 if_icmpgt
#152 ifgt
#153 if_icmpge
#154 ifge
#155 if_icmplt
#156 iflt
#157 if_icmple
#158 ifle
#159 ifnull
#160 ifnonnull
#161 goto
#162 goto_w
#163 lookupswitch_short
#164 lookupswitch
#165 newarray
#166 multianewarray
#167 arraylength
#168 newarray_object
#169 newarray_object_lib
#170 multianewarray_object
#171 multianewarray_object_lib
#172 baload
#173 saload
#174 caload
#175 iaload
#176 aaload
#177 laload
#178 bastore
#179 castore
#180 sastore
#181 iastore
#182 aastore
#183 lastore
#184 new
#185 new_lib
#186 clinit
#187 clinit_lib
#188 athrow
#189 instanceof_array
#190 checkcast_array
#191 instanceof
#192 instanceof_lib
#193 checkcast
#194 checkcast_lib
#195 checkcastbranch
#196 checkcastbranch_lib
#197 checkcastbranch_array
#198 instanceof_arrayobject
#199 instanceof_arrayobject_lib
#200 checkcast_arrayobject
#201 checkcast_arrayobject_lib
#202 monitorenter
#203 monitorexit
#204 nop
#205 pop
#206 pop2
#207 dup
#208 dup2
#209 dup_x1
#210 dup_x2
#211 dup2_x1
#212 dup2_x2
#213 swap
#214 unused_d6
#215 isreal
#216 op01xx
#217 stringlength
#218 stringaload
#219 invokestaticqc
#220 invokestaticqc_lib
#221 enter_narrow
#222 invokevirtual_short
#223 ldc_nullstr
#224 unused_e0
#225 unused_e1
#226 unused_e2
#227 unused_e3
#228 unused_e4
#229 unused_e5
#230 unused_e6
#231 unused_e7
#232 unused_e8
#233 unused_e9
#234 unused_ea
#235 unused_eb
#236 unused_ec
#237 unused_ed
#238 unused_ee
#239 unused_ef
#240 unused_f0
#241 unused_f1
#242 unused_f2
#243 unused_f3
#244 unused_f4
#245 unused_f5
#246 unused_f6
#247 unused_f7
#248 unused_f8
#249 unused_f9
#250 halt
#251 threaddeath
#252 unused_fc
#253 unused_fd
#254 unused_fe
#255 unused_ff
#256 fadd
#257 dadd
#258 fsub
#259 dsub
#260 fmul
#261 dmul
#262 fdiv
#263 ddiv
#264 frem
#265 drem
#266 fneg
#267 dneg
#268 i2f
#269 i2d
#270 l2f
#271 l2d
#272 f2i
#273 f2l
#274 f2d
#275 d2i
#276 d2l
#277 d2f
#278 fcmpl
#279 fcmpg
#280 dcmpl
#281 dcmpg
#282 stringarrayinit
#283
OptionsListItem.j (application/octet-stream, 16.6 KB) - not displayed
HelloWorldApp.j (application/octet-stream, 1.2 KB) - not displayed
message-footer.txt (text/plain, 238 B)
-- 
You receive this message as a subscriber of the [email protected] mailing list.
To unsubscribe: mailto:[email protected]
For general help: mailto:[email protected]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.