📄 itest.s
字号:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUPM68000 Hi-Performance Microprocessor DivisionM68060 Software PackageProduction Release P1.00 -- October 10, 1994M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved.THE SOFTWARE is provided on an "AS IS" basis and without warranty.To the maximum extent permitted by applicable law,MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED,INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSEand any warranty against infringement with regard to the SOFTWARE(INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials.To the maximum extent permitted by applicable law,IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER(INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS,BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS)ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE.Motorola assumes no responsibility for the maintenance and support of the SOFTWARE.You are hereby granted a copyright license to use, modify, and distribute the SOFTWAREso long as this entire notice is retained without alteration in any modified and/orredistributed versions, and that such modified versions are clearly identified as such.No licenses are granted by implication, estoppel or otherwise under any patentsor trademarks of Motorola, Inc.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#############################################set SREGS, -64set IREGS, -128set SCCR, -130set ICCR, -132set TESTCTR, -136set EAMEM, -140set EASTORE, -144set DATA, -160#############################################TESTTOP: bra.l _060TESTS_start_str: string "Testing 68060 ISP started:\n"pass_str: string "passed\n"fail_str: string " failed\n" align 0x4chk_test: tst.l %d0 bne.b test_failtest_pass: pea pass_str(%pc) bsr.l _print_str addq.l &0x4,%sp rtstest_fail: mov.l %d1,-(%sp) bsr.l _print_num addq.l &0x4,%sp pea fail_str(%pc) bsr.l _print_str addq.l &0x4,%sp rts#############################################_060TESTS_: link %a6,&-160 movm.l &0x3f3c,-(%sp) pea start_str(%pc) bsr.l _print_str addq.l &0x4,%sp### mul clr.l TESTCTR(%a6) pea mulul_str(%pc) bsr.l _print_str addq.l &0x4,%sp bsr.l mulul_0 bsr.l chk_test### div clr.l TESTCTR(%a6) pea divul_str(%pc) bsr.l _print_str addq.l &0x4,%sp bsr.l divul_0 bsr.l chk_test### cmp2 clr.l TESTCTR(%a6) pea cmp2_str(%pc) bsr.l _print_str addq.l &0x4,%sp bsr.l cmp2_1 bsr.l chk_test### movp clr.l TESTCTR(%a6) pea movp_str(%pc) bsr.l _print_str addq.l &0x4,%sp bsr.l movp_0 bsr.l chk_test### ea clr.l TESTCTR(%a6) pea ea_str(%pc) bsr.l _print_str addq.l &0x4,%sp mov.l &0x2,EAMEM(%a6) bsr.l ea_0 bsr.l chk_test### cas clr.l TESTCTR(%a6) pea cas_str(%pc) bsr.l _print_str addq.l &0x4,%sp bsr.l cas0 bsr.l chk_test### cas2 clr.l TESTCTR(%a6) pea cas2_str(%pc) bsr.l _print_str addq.l &0x4,%sp bsr.l cas20 bsr.l chk_test### movm.l (%sp)+,&0x3cfc unlk %a6 rts##########################################################################################mulul_str: string "\t64-bit multiply..." align 0x4mulul_0: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff clr.l %d1 mov.l &0x99999999,%d2 mov.l &0x88888888,%d3 mov.w &0x0004,ICCR(%a6) mov.w &0x0000,%cc movm.l &0x7fff,IREGS(%a6) mulu.l %d1,%d2:%d3 mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) clr.l IREGS+0x8(%a6) clr.l IREGS+0xc(%a6) bsr.l chkregs tst.b %d0 bne.l errormulul_1: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff mov.l &0x77777777,%d1 mov.l &0x99999999,%d2 mov.l &0x00000000,%d3 mov.w &0x0004,ICCR(%a6) mov.w &0x0000,%cc movm.l &0x7fff,IREGS(%a6) mulu.l %d1,%d2:%d3 mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) clr.l IREGS+0x8(%a6) clr.l IREGS+0xc(%a6) bsr.l chkregs tst.b %d0 bne.l errormulul_2: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff mov.l &0x00000010,%d1 mov.l &0x66666666,%d2 mov.w &0x0000,ICCR(%a6) mov.w &0x0000,%cc movm.l &0x7fff,IREGS(%a6) mulu.l %d1,%d2:%d2 mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) mov.l &0x00000006,IREGS+0x8(%a6) bsr.l chkregs tst.b %d0 bne.l errormulul_3: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff mov.l &0x55555555,%d1 mov.l &0x00000000,%d2 mov.l &0x00000003,%d3 mov.w &0x0000,ICCR(%a6) mov.w &0x0000,%cc movm.l &0x7fff,IREGS(%a6) mulu.l %d1,%d2:%d3 mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) mov.l &0x00000000,IREGS+0x8(%a6) mov.l &0xffffffff,IREGS+0xc(%a6) bsr.l chkregs tst.b %d0 bne.l errormulul_4: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff mov.l &0x40000000,%d1 mov.l &0x00000000,%d2 mov.l &0x00000004,%d3 mov.w &0x0000,ICCR(%a6) mov.w &0x0000,%cc movm.l &0x7fff,IREGS(%a6) mulu.l %d1,%d2:%d3 mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) mov.l &0x00000001,IREGS+0x8(%a6) mov.l &0x00000000,IREGS+0xc(%a6) bsr.l chkregs tst.b %d0 bne.l errormulul_5: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff mov.l &0xffffffff,%d1 mov.l &0x00000000,%d2 mov.l &0xffffffff,%d3 mov.w &0x0008,ICCR(%a6) mov.w &0x0000,%cc movm.l &0x7fff,IREGS(%a6) mulu.l %d1,%d2:%d3 mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) mov.l &0xfffffffe,IREGS+0x8(%a6) mov.l &0x00000001,IREGS+0xc(%a6) bsr.l chkregs tst.b %d0 bne.l errormulul_6: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff mov.l &0x80000000,%d1 mov.l &0x00000000,%d2 mov.l &0xffffffff,%d3 mov.w &0x00000,ICCR(%a6) mov.w &0x0000,%cc movm.l &0x7fff,IREGS(%a6) muls.l %d1,%d2:%d3 mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) mov.l &0x00000000,IREGS+0x8(%a6) mov.l &0x80000000,IREGS+0xc(%a6) bsr.l chkregs tst.b %d0 bne.l errormulul_7: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff mov.l &0x80000000,%d1 mov.l &0x00000000,%d2 mov.l &0x00000001,%d3 mov.w &0x0008,ICCR(%a6) mov.w &0x0000,%cc movm.l &0x7fff,IREGS(%a6) muls.l %d1,%d2:%d3 mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) mov.l &0xffffffff,IREGS+0x8(%a6) mov.l &0x80000000,IREGS+0xc(%a6) bsr.l chkregs tst.b %d0 bne.l errormulul_8: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff mov.l &0x00000001,%d1 mov.l &0x00000000,%d2 mov.l &0x80000000,%d3 mov.w &0x0008,ICCR(%a6) mov.w &0x0000,%cc movm.l &0x7fff,IREGS(%a6) muls.l %d1,%d2:%d3 mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) mov.l &0xffffffff,IREGS+0x8(%a6) mov.l &0x80000000,IREGS+0xc(%a6) bsr.l chkregs tst.b %d0 bne.l error mov.l TESTCTR(%a6),%d1 clr.l %d0 rts#############################################movp_str: string "\tmovep..." align 0x4################################ movep.w %d0,(0x0,%a0) ################################movp_0: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff lea DATA(%a6),%a0 mov.w &0xaaaa,%d0 clr.b 0x0(%a0) clr.b 0x2(%a0) mov.w &0x001f,ICCR(%a6) mov.w &0x001f,%cc movm.l &0x7fff,IREGS(%a6) movp.w %d0,(0x0,%a0) mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) mov.b 0x2(%a0),%d1 lsl.w &0x8,%d1 mov.b 0x0(%a0),%d1 cmp.w %d0,%d1 bne.l error bsr.l chkregs tst.b %d0 bne.l error################################ movep.w %d0,(0x0,%a0) ################################movp_1: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff lea DATA+0x4(%a6),%a0 mov.w &0xaaaa,%d0 clr.l -0x4(%a0) clr.l (%a0) clr.l 0x4(%a0) mov.w &0x001f,ICCR(%a6) mov.w &0x001f,%cc movm.l &0x7fff,IREGS(%a6) movp.w %d0,(0x0,%a0) mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) tst.l -0x4(%a0) bne.l error tst.l 0x4(%a0) bne.l error cmpi.l (%a0),&0xaa00aa00 bne.l error bsr.l chkregs tst.b %d0 bne.l error###################################################### movep.w %d0,(0x0,%a0) ## - this test has %cc initially equal to zero ######################################################movp_2: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff lea DATA(%a6),%a0 mov.w &0xaaaa,%d0 clr.b 0x0(%a0) clr.b 0x2(%a0) mov.w &0x0000,ICCR(%a6) mov.w &0x0000,%cc movm.l &0x7fff,IREGS(%a6) movp.w %d0,(0x0,%a0) mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) mov.b 0x2(%a0),%d1 lsl.w &0x8,%d1 mov.b 0x0(%a0),%d1 cmp.w %d0,%d1 bne.l error bsr.l chkregs tst.b %d0 bne.l error################################ movep.w (0x0,%a0),%d0 ################################movp_3: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff lea DATA(%a6),%a0 mov.b &0xaa,0x0(%a0) mov.b &0xaa,0x2(%a0) mov.w &0x001f,ICCR(%a6) mov.w &0x001f,%cc movm.l &0x7fff,IREGS(%a6) movp.w (0x0,%a0),%d0 mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) mov.w &0xaaaa,IREGS+0x2(%a6) mov.w &0xaaaa,%d1 cmp.w %d0,%d1 bne.l error bsr.l chkregs tst.b %d0 bne.l error################################ movep.l %d0,(0x0,%a0) ################################movp_4: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff lea DATA(%a6),%a0 mov.l &0xaaaaaaaa,%d0 clr.b 0x0(%a0) clr.b 0x2(%a0) clr.b 0x4(%a0) clr.b 0x6(%a0) mov.w &0x001f,ICCR(%a6) mov.w &0x001f,%cc movm.l &0x7fff,IREGS(%a6) movp.l %d0,(0x0,%a0) mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) mov.b 0x6(%a0),%d1 lsl.l &0x8,%d1 mov.b 0x4(%a0),%d1 lsl.l &0x8,%d1 mov.b 0x2(%a0),%d1 lsl.l &0x8,%d1 mov.b 0x0(%a0),%d1 cmp.l %d0,%d1 bne.l error bsr.l chkregs tst.b %d0 bne.l error################################ movep.l %d0,(0x0,%a0) ################################movp_5: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff lea DATA+0x4(%a6),%a0 mov.l &0xaaaaaaaa,%d0 clr.l -0x4(%a0) clr.l (%a0) clr.l 0x4(%a0) clr.l 0x8(%a0) mov.w &0x001f,ICCR(%a6) mov.w &0x001f,%cc movm.l &0x7fff,IREGS(%a6) movp.l %d0,(0x0,%a0) mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) tst.l -0x4(%a0) bne.l error tst.l 0x8(%a0) bne.l error cmpi.l (%a0),&0xaa00aa00 bne.l error cmpi.l 0x4(%a0),&0xaa00aa00 bne.l error bsr.l chkregs tst.b %d0 bne.l error################################ movep.l (0x0,%a0),%d0 ################################movp_6: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff lea DATA(%a6),%a0 mov.b &0xaa,0x0(%a0) mov.b &0xaa,0x2(%a0) mov.b &0xaa,0x4(%a0) mov.b &0xaa,0x6(%a0) mov.w &0x001f,ICCR(%a6) mov.w &0x001f,%cc movm.l &0x7fff,IREGS(%a6) movp.l (0x0,%a0),%d0 mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) mov.l &0xaaaaaaaa,IREGS(%a6) mov.l &0xaaaaaaaa,%d1 cmp.l %d0,%d1 bne.l error bsr.l chkregs tst.b %d0 bne.l error################################ movep.w %d7,(0x0,%a0) ################################movp_7: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff lea DATA(%a6),%a0 mov.w &0xaaaa,%d7 clr.b 0x0(%a0) clr.b 0x2(%a0) mov.w &0x001f,ICCR(%a6) mov.w &0x001f,%cc movm.l &0x7fff,IREGS(%a6) movp.w %d7,(0x0,%a0) mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) mov.b 0x2(%a0),%d1 lsl.w &0x8,%d1 mov.b 0x0(%a0),%d1 cmp.w %d7,%d1 bne.l error bsr.l chkregs tst.b %d0 bne.l error################################ movep.w (0x0,%a0),%d7 ################################movp_8: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff lea DATA(%a6),%a0 mov.b &0xaa,0x0(%a0) mov.b &0xaa,0x2(%a0) mov.w &0x001f,ICCR(%a6) mov.w &0x001f,%cc movm.l &0x7fff,IREGS(%a6) movp.w (0x0,%a0),%d7 mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) mov.w &0xaaaa,IREGS+30(%a6) mov.w &0xaaaa,%d1 cmp.w %d7,%d1 bne.l error bsr.l chkregs tst.b %d0 bne.l error################################ movep.w %d0,(0x0,%a0) ################################movp_9: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff lea DATA(%a6),%a0 mov.w &0xaaaa,%d0 clr.b 0x0(%a0) clr.b 0x2(%a0) mov.w &0x001f,ICCR(%a6) mov.w &0x001f,%cc movm.l &0x7fff,IREGS(%a6) movp.w %d0,(0x0,%a0) mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) mov.b 0x2(%a0),%d1 lsl.w &0x8,%d1 mov.b 0x0(%a0),%d1 cmp.w %d0,%d1 bne.l error bsr.l chkregs tst.b %d0 bne.l error################################ movep.w %d0,(0x8,%a0) ################################movp_10: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff lea DATA(%a6),%a0 mov.w &0xaaaa,%d0 clr.b 0x0+0x8(%a0) clr.b 0x2+0x8(%a0) mov.w &0x001f,ICCR(%a6) mov.w &0x1f,%cc movm.l &0x7fff,IREGS(%a6) movp.w %d0,(0x8,%a0) mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) mov.b 0x2+0x8(%a0),%d1 lsl.w &0x8,%d1 mov.b 0x0+0x8(%a0),%d1 cmp.w %d0,%d1 bne.l error bsr.l chkregs tst.b %d0 bne.l error################################ movep.w (0x8,%a0),%d0 ################################movp_11: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff lea DATA(%a6),%a0 mov.b &0xaa,0x0+0x8(%a0) mov.b &0xaa,0x2+0x8(%a0) mov.w &0x001f,ICCR(%a6) mov.w &0x1f,%cc movm.l &0x7fff,IREGS(%a6) movp.w (0x8,%a0),%d0 mov.w %cc,SCCR(%a6) movm.l &0x7fff,SREGS(%a6) mov.w &0xaaaa,IREGS+0x2(%a6) mov.w &0xaaaa,%d1 cmp.w %d0,%d1 bne.l error bsr.l chkregs tst.b %d0 bne.l error################################ movep.l %d0,(0x8,%a0) ################################movp_12: addq.l &0x1,TESTCTR(%a6) movm.l DEF_REGS(%pc),&0x3fff lea DATA(%a6),%a0 mov.l &0xaaaaaaaa,%d0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -