Home | History | Annotate | Download | only in arm
      1 %default { "is_object":"0", "helper":"artGet32StaticFromCode" }
      2     /*
      3      * General SGET handler wrapper.
      4      *
      5      * for: sget, sget-object, sget-boolean, sget-byte, sget-char, sget-short
      6      */
      7     /* op vAA, field@BBBB */
      8 
      9     .extern $helper
     10     EXPORT_PC
     11     FETCH r0, 1                         @ r0<- field ref BBBB
     12     ldr   r1, [rFP, #OFF_FP_METHOD]
     13     mov   r2, rSELF
     14     bl    $helper
     15     ldr   r3, [rSELF, #THREAD_EXCEPTION_OFFSET]
     16     mov   r2, rINST, lsr #8             @ r2<- AA
     17     PREFETCH_INST 2
     18     cmp   r3, #0                        @ Fail to resolve?
     19     bne   MterpException                @ bail out
     20 .if $is_object
     21     SET_VREG_OBJECT r0, r2              @ fp[AA]<- r0
     22 .else
     23     SET_VREG r0, r2                     @ fp[AA]<- r0
     24 .endif
     25     ADVANCE 2
     26     GET_INST_OPCODE ip                  @ extract opcode from rINST
     27     GOTO_OPCODE ip
     28