16cbe0814952bd3bbb329c4ca4dc683ac87c2c2deSerguei Katkov/* 26cbe0814952bd3bbb329c4ca4dc683ac87c2c2deSerguei Katkov * Return the length of an array. 36cbe0814952bd3bbb329c4ca4dc683ac87c2c2deSerguei Katkov */ 46cbe0814952bd3bbb329c4ca4dc683ac87c2c2deSerguei Katkov movl rINST, %eax # eax <- BA 56cbe0814952bd3bbb329c4ca4dc683ac87c2c2deSerguei Katkov sarl $$4, rINST # rINST <- B 66cbe0814952bd3bbb329c4ca4dc683ac87c2c2deSerguei Katkov GET_VREG %ecx, rINSTq # ecx <- vB (object ref) 76cbe0814952bd3bbb329c4ca4dc683ac87c2c2deSerguei Katkov testl %ecx, %ecx # is null? 86cbe0814952bd3bbb329c4ca4dc683ac87c2c2deSerguei Katkov je common_errNullObject 96cbe0814952bd3bbb329c4ca4dc683ac87c2c2deSerguei Katkov andb $$0xf, %al # eax <- A 106cbe0814952bd3bbb329c4ca4dc683ac87c2c2deSerguei Katkov movl MIRROR_ARRAY_LENGTH_OFFSET(%rcx), rINST 116cbe0814952bd3bbb329c4ca4dc683ac87c2c2deSerguei Katkov SET_VREG rINST, %rax 126cbe0814952bd3bbb329c4ca4dc683ac87c2c2deSerguei Katkov ADVANCE_PC_FETCH_AND_GOTO_NEXT 1 13