Lines Matching refs:l

920 	bsr.l		load_fpn2		# load dst into FP_DST
923 bsr.l set_tag_x # tag the operand type
926 bsr.l unnorm_fix # yes; convert to NORM,DENORM,or ZERO
932 #$# mov.l FP_SRC_EX(%a6),TRAP_SRCOP_EX(%a6)
933 #$# mov.l FP_SRC_HI(%a6),TRAP_SRCOP_HI(%a6)
934 #$# mov.l FP_SRC_LO(%a6),TRAP_SRCOP_LO(%a6)
935 #$# mov.l FP_DST_EX(%a6),TRAP_DSTOP_EX(%a6)
936 #$# mov.l FP_DST_HI(%a6),TRAP_DSTOP_HI(%a6)
937 #$# mov.l FP_DST_LO(%a6),TRAP_DSTOP_LO(%a6)
939 clr.l %d0
945 andi.l &0x00ff01ff,USER_FPSR(%a6)
947 fmov.l &0x0,%fpcr # zero current control regs
948 fmov.l &0x0,%fpsr
954 mov.l (tbl_unsupp.l,%pc,%d1.w*4),%d1 # fetch routine addr
955 jsr (tbl_unsupp.l,%pc,%d1.l*1)
958 bsr.l store_fpreg
981 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs
982 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
985 #$# add.l &24,%sp
986 bra.l _fpsp_done
1224 mov.l %a0,EXC_A7(%a6) # save on stack
1231 mov.l USER_FPIAR(%a6),EXC_EXTWPTR(%a6)
1232 mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr
1233 addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr
1234 bsr.l _imem_read_long # fetch the instruction words
1235 mov.l %d0,EXC_OPWORD(%a6) # store OPWORD and EXTWORD
1269 bsr.l set_tag_x # tag the operand type
1272 bsr.l unnorm_fix # yes; convert to NORM,DENORM,or ZERO
1333 bsr.l store_fpreg # store the result
1338 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs
1339 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1343 bra.l _fpsp_done
1384 subi.l &24,%d0 # fix offset to be 0-8
1398 mov.l %d0,-(%sp) # save d0
1399 bsr.l funimp_skew # skew sgl or dbl inputs
1400 mov.l (%sp)+,%d0 # restore d0
1405 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs
1406 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1412 bra.l _fpsp_done
1448 andi.l &0x7fffffff,LOCAL_HI(%a0) # clear j-bit
1480 tst.l LOCAL_LO(%a0) # is it a zero?
1484 bsr.l norm # normalize mantissa
1509 and.l &0xffff00ff,USER_FPSR(%a6) # zero exception field
1511 fmov.l &0x0,%fpcr # zero current control regs
1512 fmov.l &0x0,%fpsr
1521 bsr.l unnorm_fix # yes; fix it
1530 clr.l %d0
1535 mov.l (%a6),EXC_A6(%a6) # in case a6 changes
1536 bsr.l fout # call fmove out routine
1541 # OPERR : fmove.{b,w,l} out of large UNNORM
1565 mov.l EXC_A7(%a6),%a0 # restore a7
1566 mov.l %a0,%usp
1570 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs
1571 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1578 bra.l _fpsp_done
1677 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs
1678 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1688 bra.l _real_snan
1692 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs
1693 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1703 bra.l _real_operr
1709 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs
1710 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1719 bra.l _real_ovfl
1762 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs
1763 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1770 mov.l (%a6),%a6 # restore frame pointer
1772 mov.l LOCAL_SIZE+EXC_SR(%sp),LOCAL_SIZE+EXC_SR-0xc(%sp)
1773 mov.l LOCAL_SIZE+2+EXC_PC(%sp),LOCAL_SIZE+2+EXC_PC-0xc(%sp)
1774 mov.l LOCAL_SIZE+EXC_EA(%sp),LOCAL_SIZE+EXC_EA-0xc(%sp)
1777 mov.l LOCAL_SIZE+FP_SRC_EX(%sp),LOCAL_SIZE+EXC_SR+0x0(%sp)
1778 mov.l LOCAL_SIZE+FP_SRC_HI(%sp),LOCAL_SIZE+EXC_SR+0x4(%sp)
1779 mov.l LOCAL_SIZE+FP_SRC_LO(%sp),LOCAL_SIZE+EXC_SR+0x8(%sp)
1781 add.l &LOCAL_SIZE-0x8,%sp
1783 bra.l _real_unfl
1790 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs
1791 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1801 bra.l _real_inex
1831 bsr.l load_fpn2 # load dst into FP_DST
1834 bsr.l set_tag_x # tag the operand type
1837 bsr.l unnorm_fix # yes; convert to NORM,DENORM,or ZERO
1842 clr.l %d0
1850 mov.l (tbl_unsupp.l,%pc,%d1.l*4),%d1 # fetch routine addr
1851 jsr (tbl_unsupp.l,%pc,%d1.l*1)
1878 bsr.l store_fpreg # store the result
1885 mov.l EXC_A7(%a6),%a0 # update user a7
1886 mov.l %a0,%usp
1890 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs
1891 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1898 bra.l _fpsp_done # exit to os
1914 mov.l 0x4(%sp),0x10(%sp)
1915 mov.l 0x0(%sp),0xc(%sp)
1916 add.l &0xc,%sp
1921 bra.l _fpsp_done # exit to os
1962 subi.l &24,%d0 # fix offset to be 0-8
1982 mov.l EXC_A7(%a6),%a0 # update user a7
1983 mov.l %a0,%usp
1989 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs
1990 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
1999 bra.l _fpsp_done
2020 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs
2021 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2028 mov.l 0x4(%sp),0x10(%sp)
2029 mov.l 0x0(%sp),0xc(%sp)
2030 add.l &0xc,%sp
2035 bra.l _fpsp_done # exit to os
2056 fmov.l %fpiar,0x8(%sp)
2058 bra.l _real_trace
2068 and.l &0xffff00ff,USER_FPSR(%a6) # zero exception field
2070 fmov.l &0x0,%fpcr # zero current control regs
2071 fmov.l &0x0,%fpsr
2074 bsr.l load_fpn1
2079 bsr.l set_tag_x # tag the operand type
2082 bsr.l unnorm_fix # yes; convert to NORM,DENORM,or ZERO
2087 clr.l %d0
2092 mov.l (%a6),EXC_A6(%a6) # in case a6 changes
2093 bsr.l fout # call fmove out routine
2111 mov.l EXC_A6(%a6),(%a6) # restore a6
2116 mov.l EXC_A7(%a6),%a0 # update user a7
2117 mov.l %a0,%usp
2121 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs
2122 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2129 bra.l _fpsp_done # exit to os
2317 mov.l FP_SRC_HI(%a6),%d1 # fetch DENORM hi(man)
2318 lsr.l %d0,%d1 # shift it
2320 mov.l %d1,FP_SRC_HI(%a6) # insert new hi(man)
2336 clr.l %d0 # clear g,r,s
2339 bsr.l dnrm_lp # denorm it
2354 beq.l _dmem_write
2355 mov.l 0x0(%a0),FP_DST_EX(%a6)
2356 mov.l 0x4(%a0),FP_DST_HI(%a6)
2357 mov.l 0x8(%a0),FP_DST_LO(%a6)
2358 clr.l %d1
2457 mov.l %d0,-(%sp) # save d0
2461 mov.l (%sp)+,%d0 # restore d0
2465 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2466 fmovm.l %fpcr,%fpsr,%fpiar,USER_FPCR(%a6) # save ctrl regs
2470 mov.l EXC_PC(%a6),EXC_EXTWPTR(%a6)
2472 mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr
2473 addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr
2474 bsr.l _imem_read_long # fetch the instruction words
2475 mov.l %d0,EXC_OPWORD(%a6) # store OPWORD and EXTWORD
2538 tst.l FP_SRC_HI(%a6) # is lw 2 zero?
2540 tst.l FP_SRC_LO(%a6) # is lw 3 zero?
2544 bsr.l decbin # convert to extended
2548 addi.l &0xc,EXC_EXTWPTR(%a6) # update extension word pointer
2552 bsr.l set_tag_x # tag the operand type
2556 bsr.l unnorm_fix # yes; convert to NORM/DENORM/ZERO
2568 bsr.l load_fpn2 # load dst operand
2571 bsr.l set_tag_x # tag the operand type
2575 bsr.l unnorm_fix # yes; convert to NORM/DENORM/ZERO
2590 clr.l %d0
2596 fmov.l &0x0,%fpcr
2597 fmov.l &0x0,%fpsr
2602 mov.l (tbl_unsupp.l,%pc,%d1.w*4),%d1 # fetch routine addr
2603 jsr (tbl_unsupp.l,%pc,%d1.l*1)
2933 mov.l (%a6),%a6 # restore frame pointer
2935 mov.l EXC_PC+LOCAL_SIZE(%sp),0x8+LOCAL_SIZE(%sp)
2936 mov.l EXC_EXTWPTR+LOCAL_SIZE(%sp),0x2+LOCAL_SIZE(%sp)
2938 add.l &LOCAL_SIZE,%sp # clear stack frame
2940 bra.l _real_trace
2950 mov.l (%sp)+,%d0 # restore d0
2954 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
2957 mov.l EXC_PC(%a6),EXC_EXTWPTR(%a6)
2958 mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr
2959 addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr
2960 bsr.l _imem_read_long # fetch the instruction words
2961 mov.l %d0,EXC_OPWORD(%a6) # store OPWORD and EXTWORD
2968 mov.l &0x10,%d0 # 16 bytes of instruction
2973 # the instruction is a fmovm.l with 2 or 3 registers.
2975 mov.l &0xc,%d0
2978 addq.l &0x4,%d0
2985 clr.l %d0
2986 bsr.l fmovm_calc_ea
2987 mov.l EXC_EXTWPTR(%a6),%d0
2988 sub.l EXC_PC(%a6),%d0
2992 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
2999 subq.l &0x8,%sp # make room for new stack
3000 mov.l %d0,-(%sp) # save d0
3002 mov.l 0xe(%sp),0x6(%sp) # move Current PC
3003 clr.l %d0
3005 mov.l 0x6(%sp),0x10(%sp) # move Current PC
3006 add.l %d0,0x6(%sp) # make Next PC
3008 mov.l (%sp)+,%d0 # restore d0
3010 bra.l _real_fpu_disabled
3018 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs
3021 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3026 mov.l 0x8(%sp),(%sp) # store SR,hi(PC)
3029 mov.l 0x2(%sp),0x8(%sp) # store ea
3030 mov.l &0x09428001,0xc(%sp) # store fslw
3038 bra.l _real_access
3047 fmovm.l LOCAL_SIZE+USER_FPCR(%sp),%fpcr,%fpsr,%fpiar # restore ctrl regs
3049 mov.l (%a6),%a6
3051 mov.l 0x4+LOCAL_SIZE(%sp),-0x8+0x4+LOCAL_SIZE(%sp)
3054 mov.l %a0,-0x8+0xc+LOCAL_SIZE(%sp)
3058 movm.l LOCAL_SIZE+EXC_DREGS(%sp),&0x0303 # restore d0-d1/a0-a1
3075 # store_dreg_{b,w,l}() - store data to data regfile (opclass 3) #
3076 # facc_out_{b,w,l}() - store to memory took access error (opcl 3) #
3171 tst.l FP_SRC_LO(%a6)
3173 mov.l FP_SRC_HI(%a6),%d1
3174 andi.l &0x7fffffff,%d1
3177 mov.l FP_SRC_HI(%a6),L_SCR1(%a6)
3181 mov.l &0x7fffffff,%d1
3184 addq.l &0x1,%d1
3186 mov.l %d1,L_SCR1(%a6)
3308 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3309 fmovm.l %fpcr,%fpsr,%fpiar,USER_FPCR(%a6) # save ctrl regs
3313 mov.l USER_FPIAR(%a6),EXC_EXTWPTR(%a6)
3315 mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr
3316 addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr
3317 bsr.l _imem_read_long # fetch the instruction words
3318 mov.l %d0,EXC_OPWORD(%a6)
3331 bsr.l fix_skewed_ops # fix src op
3335 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs
3336 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3341 bra.l _real_snan
3726 clr.l %d0
3729 andi.l &0xffff00ff,USER_FPSR(%a6) # zero exception field
3733 bsr.l fout # store the default result
3774 movm.l &0x0303,EXC_DREGS(%a6) # save d0-d1/a0-a1
3775 fmovm.l %fpcr,%fpsr,%fpiar,USER_FPCR(%a6) # save ctrl regs
3779 mov.l USER_FPIAR(%a6),EXC_EXTWPTR(%a6)
3781 mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr
3782 addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr
3783 bsr.l _imem_read_long # fetch the instruction words
3784 mov.l %d0,EXC_OPWORD(%a6)
3793 bsr.l fix_skewed_ops # fix src op
3797 fmovm.l USER_FPCR(%a6),%fpcr,%fpsr,%fpiar # restore ctrl regs
3798 movm.l EXC_DREGS(%a6),&0x0303 # restore d0-d1/a0-a1
3803 bra.l _real_dz
3842 beq.l _real_fpu_disabled
3844 bra.l _real_fline
3870 # stacked b,w,l and s sizes are completely stacked. #
3877 mov.l %d0, %a0 # move # bytes to %a0
3880 mov.l %d0, %d1 # make a copy
3883 andi.l &0x7, %d1 # extract reg field
3896 mov.l EXC_EA(%a6),%a0 # return <ea>
3920 mov.l %a0,%d0 # pass amt to dec by
3921 bsr.l dec_areg # dec addr register
3923 mov.l EXC_EA(%a6),%a0 # stacked <ea> is correct
3929 sub.l &0x8,%a0 # correct <ea>
3930 mov.l %a0,EXC_EA(%a6) # put correct <ea> on stack
4320 mov.l %a0,%a1 # move <ea> to a1
4322 sub.l %d0,%sp # subtract size of dump
4328 mov.l 0x0+EXC_FP0(%a6),(%a0)+ # yes
4329 mov.l 0x4+EXC_FP0(%a6),(%a0)+
4330 mov.l 0x8+EXC_FP0(%a6),(%a0)+
4336 mov.l 0x0+EXC_FP1(%a6),(%a0)+ # yes
4337 mov.l 0x4+EXC_FP1(%a6),(%a0)+
4338 mov.l 0x8+EXC_FP1(%a6),(%a0)+
4345 add.l &0xc,%a0
4352 add.l &0xc,%a0
4359 add.l &0xc,%a0
4366 add.l &0xc,%a0
4373 add.l &0xc,%a0
4380 add.l &0xc,%a0
4383 mov.l %a1,L_SCR1(%a6)
4386 mov.l %d0,-(%sp) # save size
4387 bsr.l _dmem_write # copy data to user mem
4389 mov.l (%sp)+,%d0
4390 add.l %d0,%sp # clear fpreg data from stack
4392 tst.l %d1 # did dstore err?
4401 mov.l %a0,L_SCR1(%a6)
4403 sub.l %d0,%sp # make room for fpregs
4406 mov.l %d1,-(%sp) # save bit string for later
4407 mov.l %d0,-(%sp) # save # of bytes
4409 bsr.l _dmem_read # copy data from user mem
4411 mov.l (%sp)+,%d0 # retrieve # of bytes
4413 tst.l %d1 # did dfetch fail?
4416 mov.l (%sp)+,%d1 # load bit string
4423 mov.l (%a0)+,0x0+EXC_FP0(%a6) # yes
4424 mov.l (%a0)+,0x4+EXC_FP0(%a6)
4425 mov.l (%a0)+,0x8+EXC_FP0(%a6)
4431 mov.l (%a0)+,0x0+EXC_FP1(%a6) # yes
4432 mov.l (%a0)+,0x4+EXC_FP1(%a6)
4433 mov.l (%a0)+,0x8+EXC_FP1(%a6)
4472 add.l %d0,%sp # remove fpregs from stack
4573 mov.l %d0,%a0 # move # bytes to a0
4581 andi.l &0x7,%d1 # extract reg field
4665 mov.l EXC_DREGS+0x8(%a6),%a0 # Get current a0
4669 mov.l EXC_DREGS+0xc(%a6),%a0 # Get current a1
4673 mov.l %a2,%a0 # Get current a2
4677 mov.l %a3,%a0 # Get current a3
4681 mov.l %a4,%a0 # Get current a4
4685 mov.l %a5,%a0 # Get current a5
4689 mov.l (%a6),%a0 # Get current a6
4693 mov.l EXC_A7(%a6),%a0 # Get current a7
4700 mov.l EXC_DREGS+0x8(%a6),%d0 # Get current a0
4701 mov.l %d0,%d1
4702 add.l %a0,%d1 # Increment
4703 mov.l %d1,EXC_DREGS+0x8(%a6) # Save incr value
4704 mov.l %d0,%a0
4708 mov.l EXC_DREGS+0xc(%a6),%d0 # Get current a1
4709 mov.l %d0,%d1
4710 add.l %a0,%d1 # Increment
4711 mov.l %d1,EXC_DREGS+0xc(%a6) # Save incr value
4712 mov.l %d0,%a0
4716 mov.l %a2,%d0 # Get current a2
4717 mov.l %d0,%d1
4718 add.l %a0,%d1 # Increment
4719 mov.l %d1,%a2 # Save incr value
4720 mov.l %d0,%a0
4724 mov.l %a3,%d0 # Get current a3
4725 mov.l %d0,%d1
4726 add.l %a0,%d1 # Increment
4727 mov.l %d1,%a3 # Save incr value
4728 mov.l %d0,%a0
4732 mov.l %a4,%d0 # Get current a4
4733 mov.l %d0,%d1
4734 add.l %a0,%d1 # Increment
4735 mov.l %d1,%a4 # Save incr value
4736 mov.l %d0,%a0
4740 mov.l %a5,%d0 # Get current a5
4741 mov.l %d0,%d1
4742 add.l %a0,%d1 # Increment
4743 mov.l %d1,%a5 # Save incr value
4744 mov.l %d0,%a0
4748 mov.l (%a6),%d0 # Get current a6
4749 mov.l %d0,%d1
4750 add.l %a0,%d1 # Increment
4751 mov.l %d1,(%a6) # Save incr value
4752 mov.l %d0,%a0
4758 mov.l EXC_A7(%a6),%d0 # Get current a7
4759 mov.l %d0,%d1
4760 add.l %a0,%d1 # Increment
4761 mov.l %d1,EXC_A7(%a6) # Save incr value
4762 mov.l %d0,%a0
4769 mov.l EXC_DREGS+0x8(%a6),%d0 # Get current a0
4770 sub.l %a0,%d0 # Decrement
4771 mov.l %d0,EXC_DREGS+0x8(%a6) # Save decr value
4772 mov.l %d0,%a0
4776 mov.l EXC_DREGS+0xc(%a6),%d0 # Get current a1
4777 sub.l %a0,%d0 # Decrement
4778 mov.l %d0,EXC_DREGS+0xc(%a6) # Save decr value
4779 mov.l %d0,%a0
4783 mov.l %a2,%d0 # Get current a2
4784 sub.l %a0,%d0 # Decrement
4785 mov.l %d0,%a2 # Save decr value
4786 mov.l %d0,%a0
4790 mov.l %a3,%d0 # Get current a3
4791 sub.l %a0,%d0 # Decrement
4792 mov.l %d0,%a3 # Save decr value
4793 mov.l %d0,%a0
4797 mov.l %a4,%d0 # Get current a4
4798 sub.l %a0,%d0 # Decrement
4799 mov.l %d0,%a4 # Save decr value
4800 mov.l %d0,%a0
4804 mov.l %a5,%d0 # Get current a5
4805 sub.l %a0,%d0 # Decrement
4806 mov.l %d0,%a5 # Save decr value
4807 mov.l %d0,%a0
4811 mov.l (%a6),%d0 # Get current a6
4812 sub.l %a0,%d0 # Decrement
4813 mov.l %d0,(%a6) # Save decr value
4814 mov.l %d0,%a0
4820 mov.l EXC_A7(%a6),%d0 # Get current a7
4821 sub.l %a0,%d0 # Decrement
4822 mov.l %d0,EXC_A7(%a6) # Save decr value
4823 mov.l %d0,%a0
4830 mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr
4831 addq.l &0x2,EXC_EXTWPTR(%a6) # incr instruction ptr
4832 bsr.l _imem_read_word
4834 tst.l %d1 # did ifetch fail?
4835 bne.l iea_iacc # yes
4839 add.l EXC_DREGS+0x8(%a6),%a0 # a0 + d16
4843 mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr
4844 addq.l &0x2,EXC_EXTWPTR(%a6) # incr instruction ptr
4845 bsr.l _imem_read_word
4847 tst.l %d1 # did ifetch fail?
4848 bne.l iea_iacc # yes
4852 add.l EXC_DREGS+0xc(%a6),%a0 # a1 + d16
4856 mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr
4857 addq.l &0x2,EXC_EXTWPTR(%a6) # incr instruction ptr
4858 bsr.l _imem_read_word
4860 tst.l %d1 # did ifetch fail?
4861 bne.l iea_iacc # yes
4865 add.l %a2,%a0 # a2 + d16
4869 mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr
4870 addq.l &0x2,EXC_EXTWPTR(%a6) # incr instruction ptr
4871 bsr.l _imem_read_word
4873 tst.l %d1 # did ifetch fail?
4874 bne.l iea_iacc # yes
4878 add.l %a3,%a0 # a3 + d16
4882 mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr
4883 addq.l &0x2,EXC_EXTWPTR(%a6) # incr instruction ptr
4884 bsr.l _imem_read_word
4886 tst.l %d1 # did ifetch fail?
4887 bne.l iea_iacc # yes
4891 add.l %a4,%a0 # a4 + d16
4895 mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr
4896 addq.l &0x2,EXC_EXTWPTR(%a6) # incr instruction ptr
4897 bsr.l _imem_read_word
4899 tst.l %d1 # did ifetch fail?
4900 bne.l iea_iacc # yes
4904 add.l %a5,%a0 # a5 + d16
4908 mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr
4909 addq.l &0x2,EXC_EXTWPTR(%a6) # incr instruction ptr
4910 bsr.l _imem_read_word
4912 tst.l %d1 # did ifetch fail?
4913 bne.l iea_iacc # yes
4917 add.l (%a6),%a0 # a6 + d16
4921 mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr
4922 addq.l &0x2,EXC_EXTWPTR(%a6) # incr instruction ptr
4923 bsr.l _imem_read_word
4925 tst.l %d1 # did ifetch fail?
4926 bne.l iea_iacc # yes
4930 add.l EXC_A7(%a6),%a0 # a7 + d16
4940 addq.l &0x8,%d1
4941 bsr.l fetch_dreg # fetch base areg
4942 mov.l %d0,-(%sp)
4944 mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr
4945 addq.l &0x2,EXC_EXTWPTR(%a6) # incr instruction ptr
4946 bsr.l _imem_read_word # fetch extword in d0
4948 tst.l %d1 # did ifetch fail?
4949 bne.l iea_iacc # yes
4951 mov.l (%sp)+,%a0
4956 mov.l %d0,L_SCR1(%a6) # hold opword
4958 mov.l %d0,%d1
4963 bsr.l fetch_dreg # fetch index
4965 mov.l %d2,-(%sp) # save d2
4966 mov.l L_SCR1(%a6),%d2 # fetch opword
4970 ext.l %d0 # sign extend word index
4972 mov.l %d2,%d1
4974 andi.l &0x3,%d1 # extract scale value
4976 lsl.l %d1,%d0 # shift index by scale
4978 extb.l %d2 # sign extend displacement
4979 add.l %d2,%d0 # index + disp
4980 add.l %d0,%a0 # An + (index + disp)
4982 mov.l (%sp)+,%d2 # restore old d2
4989 mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr
4990 addq.l &0x2,EXC_EXTWPTR(%a6) # incr instruction ptr
4991 bsr.l _imem_read_word # fetch short address
4993 tst.l %d1 # did ifetch fail?
4994 bne.l iea_iacc # yes
5003 mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr
5004 addq.l &0x4,EXC_EXTWPTR(%a6) # incr instruction ptr
5005 bsr.l _imem_read_long # fetch long address
5007 tst.l %d1 # did ifetch fail?
5008 bne.l iea_iacc # yes
5010 mov.l %d0,%a0 # return <ea> in a0
5017 mov.l EXC_EXTWPTR(%a6),%a0 # fetch instruction addr
5018 addq.l &0x2,EXC_EXTWPTR(%a6) # incr instruction ptr
5019 bsr.l _imem_read_word # fetch word displacement
5021 tst.l %d1 # did ifetch fail?
5022 bne.l iea_iacc # yes
5026 add.l EXC_EXTWPTR(%a6),%a0 # pc + d16
5029 subq.l &0x2,%a0 # adjust <ea>