1200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung /* 2200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung * Return a 64-bit value. 3200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung */ 4200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung /* return-wide vAA */ 5200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung .extern MterpThreadFenceForConstructor 6200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung JAL(MterpThreadFenceForConstructor) 7200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung lw ra, THREAD_FLAGS_OFFSET(rSELF) 8200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung move a0, rSELF 9200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung and ra, (THREAD_SUSPEND_REQUEST | THREAD_CHECKPOINT_REQUEST) 10200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung beqz ra, 1f 11200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung JAL(MterpSuspendCheck) # (self) 12200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung1: 13200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung GET_OPA(a2) # a2 <- AA 14200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung EAS2(a2, rFP, a2) # a2 <- &fp[AA] 15200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung LOAD64(v0, v1, a2) # v0/v1 <- vAA/vAA+1 16200f040af3e4fe9e178cb63c90860d58d90ef665Douglas Leung b MterpReturn 17