blob: 2b603034c63ff16b5b346dceea4c2505e70da74d [file] [log] [blame]
Bill Buzbee7c58bd42016-01-20 20:46:01 +00001/*
2 * SGET_WIDE handler wrapper.
3 *
4 */
5 /* sget-wide vAA, field@BBBB */
6 .extern artGet64StaticFromCode
7 EXPORT_PC
8 movzwl 2(rPC), %eax
9 movl %eax, OUT_ARG0(%esp) # field ref CCCC
10 movl OFF_FP_METHOD(rFP), %eax
11 movl %eax, OUT_ARG1(%esp) # referrer
12 movl rSELF, %ecx
13 movl %ecx, OUT_ARG2(%esp) # self
Serguei Katkov05dfaaa2016-01-28 08:21:26 +060014 call SYMBOL(artGet64StaticFromCode)
Bill Buzbee7c58bd42016-01-20 20:46:01 +000015 movl rSELF, %ecx
16 cmpl $$0, THREAD_EXCEPTION_OFFSET(%ecx)
17 jnz MterpException
Serguei Katkov05dfaaa2016-01-28 08:21:26 +060018 SET_VREG %eax, rINST # fp[A]<- low part
19 SET_VREG_HIGH %edx, rINST # fp[A+1]<- high part
Serguei Katkovff8579e2016-02-17 11:30:23 +060020 RESTORE_IBASE_FROM_SELF %ecx
Bill Buzbee7c58bd42016-01-20 20:46:01 +000021 ADVANCE_PC_FETCH_AND_GOTO_NEXT 2