diff options
Diffstat (limited to 'c/src/lib/libcpu/m68k/m68040/fpsp/tbldo.S')
-rw-r--r-- | c/src/lib/libcpu/m68k/m68040/fpsp/tbldo.S | 556 |
1 files changed, 556 insertions, 0 deletions
diff --git a/c/src/lib/libcpu/m68k/m68040/fpsp/tbldo.S b/c/src/lib/libcpu/m68k/m68040/fpsp/tbldo.S new file mode 100644 index 0000000000..df3caba0e5 --- /dev/null +++ b/c/src/lib/libcpu/m68k/m68040/fpsp/tbldo.S @@ -0,0 +1,556 @@ +// +// $Id$ +// +// tbldo.sa 3.1 12/10/90 +// +// Modified: +// 8/16/90 chinds The table was constructed to use only one level +// of indirection in do_func for monadic +// functions. Dyadic functions require two +// levels, and the tables are still contained +// in do_func. The table is arranged for +// index with a 10-bit index, with the first +// 7 bits the opcode, and the remaining 3 +// the stag. For dyadic functions, all +// valid addresses are to the generic entry +// point. +// + +// Copyright (C) Motorola, Inc. 1990 +// All Rights Reserved +// +// THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF MOTOROLA +// The copyright notice above does not evidence any +// actual or intended publication of such source code. + +//TBLDO idnt 2,1 | Motorola 040 Floating Point Software Package + + |section 8 + + |xref ld_pinf,ld_pone,ld_ppi2 + |xref t_dz2,t_operr + |xref serror,sone,szero,sinf,snzrinx + |xref sopr_inf,spi_2,src_nan,szr_inf + + |xref smovcr + |xref pmod,prem,pscale + |xref satanh,satanhd + |xref sacos,sacosd,sasin,sasind,satan,satand + |xref setox,setoxd,setoxm1,setoxm1d,setoxm1i + |xref sgetexp,sgetexpd,sgetman,sgetmand + |xref sint,sintd,sintrz + |xref ssincos,ssincosd,ssincosi,ssincosnan,ssincosz + |xref scos,scosd,ssin,ssind,stan,stand + |xref scosh,scoshd,ssinh,ssinhd,stanh,stanhd + |xref sslog10,sslog2,sslogn,sslognp1 + |xref sslog10d,sslog2d,sslognd,slognp1d + |xref stentox,stentoxd,stwotox,stwotoxd + +// instruction ;opcode-stag Notes + .global tblpre +tblpre: + .long smovcr //$00-0 fmovecr all + .long smovcr //$00-1 fmovecr all + .long smovcr //$00-2 fmovecr all + .long smovcr //$00-3 fmovecr all + .long smovcr //$00-4 fmovecr all + .long smovcr //$00-5 fmovecr all + .long smovcr //$00-6 fmovecr all + .long smovcr //$00-7 fmovecr all + + .long sint //$01-0 fint norm + .long szero //$01-1 fint zero + .long sinf //$01-2 fint inf + .long src_nan //$01-3 fint nan + .long sintd //$01-4 fint denorm inx + .long serror //$01-5 fint ERROR + .long serror //$01-6 fint ERROR + .long serror //$01-7 fint ERROR + + .long ssinh //$02-0 fsinh norm + .long szero //$02-1 fsinh zero + .long sinf //$02-2 fsinh inf + .long src_nan //$02-3 fsinh nan + .long ssinhd //$02-4 fsinh denorm + .long serror //$02-5 fsinh ERROR + .long serror //$02-6 fsinh ERROR + .long serror //$02-7 fsinh ERROR + + .long sintrz //$03-0 fintrz norm + .long szero //$03-1 fintrz zero + .long sinf //$03-2 fintrz inf + .long src_nan //$03-3 fintrz nan + .long snzrinx //$03-4 fintrz denorm inx + .long serror //$03-5 fintrz ERROR + .long serror //$03-6 fintrz ERROR + .long serror //$03-7 fintrz ERROR + + .long serror //$04-0 ERROR - illegal extension + .long serror //$04-1 ERROR - illegal extension + .long serror //$04-2 ERROR - illegal extension + .long serror //$04-3 ERROR - illegal extension + .long serror //$04-4 ERROR - illegal extension + .long serror //$04-5 ERROR - illegal extension + .long serror //$04-6 ERROR - illegal extension + .long serror //$04-7 ERROR - illegal extension + + .long serror //$05-0 ERROR - illegal extension + .long serror //$05-1 ERROR - illegal extension + .long serror //$05-2 ERROR - illegal extension + .long serror //$05-3 ERROR - illegal extension + .long serror //$05-4 ERROR - illegal extension + .long serror //$05-5 ERROR - illegal extension + .long serror //$05-6 ERROR - illegal extension + .long serror //$05-7 ERROR - illegal extension + + .long sslognp1 //$06-0 flognp1 norm + .long szero //$06-1 flognp1 zero + .long sopr_inf //$06-2 flognp1 inf + .long src_nan //$06-3 flognp1 nan + .long slognp1d //$06-4 flognp1 denorm + .long serror //$06-5 flognp1 ERROR + .long serror //$06-6 flognp1 ERROR + .long serror //$06-7 flognp1 ERROR + + .long serror //$07-0 ERROR - illegal extension + .long serror //$07-1 ERROR - illegal extension + .long serror //$07-2 ERROR - illegal extension + .long serror //$07-3 ERROR - illegal extension + .long serror //$07-4 ERROR - illegal extension + .long serror //$07-5 ERROR - illegal extension + .long serror //$07-6 ERROR - illegal extension + .long serror //$07-7 ERROR - illegal extension + + .long setoxm1 //$08-0 fetoxm1 norm + .long szero //$08-1 fetoxm1 zero + .long setoxm1i //$08-2 fetoxm1 inf + .long src_nan //$08-3 fetoxm1 nan + .long setoxm1d //$08-4 fetoxm1 denorm + .long serror //$08-5 fetoxm1 ERROR + .long serror //$08-6 fetoxm1 ERROR + .long serror //$08-7 fetoxm1 ERROR + + .long stanh //$09-0 ftanh norm + .long szero //$09-1 ftanh zero + .long sone //$09-2 ftanh inf + .long src_nan //$09-3 ftanh nan + .long stanhd //$09-4 ftanh denorm + .long serror //$09-5 ftanh ERROR + .long serror //$09-6 ftanh ERROR + .long serror //$09-7 ftanh ERROR + + .long satan //$0a-0 fatan norm + .long szero //$0a-1 fatan zero + .long spi_2 //$0a-2 fatan inf + .long src_nan //$0a-3 fatan nan + .long satand //$0a-4 fatan denorm + .long serror //$0a-5 fatan ERROR + .long serror //$0a-6 fatan ERROR + .long serror //$0a-7 fatan ERROR + + .long serror //$0b-0 ERROR - illegal extension + .long serror //$0b-1 ERROR - illegal extension + .long serror //$0b-2 ERROR - illegal extension + .long serror //$0b-3 ERROR - illegal extension + .long serror //$0b-4 ERROR - illegal extension + .long serror //$0b-5 ERROR - illegal extension + .long serror //$0b-6 ERROR - illegal extension + .long serror //$0b-7 ERROR - illegal extension + + .long sasin //$0c-0 fasin norm + .long szero //$0c-1 fasin zero + .long t_operr //$0c-2 fasin inf + .long src_nan //$0c-3 fasin nan + .long sasind //$0c-4 fasin denorm + .long serror //$0c-5 fasin ERROR + .long serror //$0c-6 fasin ERROR + .long serror //$0c-7 fasin ERROR + + .long satanh //$0d-0 fatanh norm + .long szero //$0d-1 fatanh zero + .long t_operr //$0d-2 fatanh inf + .long src_nan //$0d-3 fatanh nan + .long satanhd //$0d-4 fatanh denorm + .long serror //$0d-5 fatanh ERROR + .long serror //$0d-6 fatanh ERROR + .long serror //$0d-7 fatanh ERROR + + .long ssin //$0e-0 fsin norm + .long szero //$0e-1 fsin zero + .long t_operr //$0e-2 fsin inf + .long src_nan //$0e-3 fsin nan + .long ssind //$0e-4 fsin denorm + .long serror //$0e-5 fsin ERROR + .long serror //$0e-6 fsin ERROR + .long serror //$0e-7 fsin ERROR + + .long stan //$0f-0 ftan norm + .long szero //$0f-1 ftan zero + .long t_operr //$0f-2 ftan inf + .long src_nan //$0f-3 ftan nan + .long stand //$0f-4 ftan denorm + .long serror //$0f-5 ftan ERROR + .long serror //$0f-6 ftan ERROR + .long serror //$0f-7 ftan ERROR + + .long setox //$10-0 fetox norm + .long ld_pone //$10-1 fetox zero + .long szr_inf //$10-2 fetox inf + .long src_nan //$10-3 fetox nan + .long setoxd //$10-4 fetox denorm + .long serror //$10-5 fetox ERROR + .long serror //$10-6 fetox ERROR + .long serror //$10-7 fetox ERROR + + .long stwotox //$11-0 ftwotox norm + .long ld_pone //$11-1 ftwotox zero + .long szr_inf //$11-2 ftwotox inf + .long src_nan //$11-3 ftwotox nan + .long stwotoxd //$11-4 ftwotox denorm + .long serror //$11-5 ftwotox ERROR + .long serror //$11-6 ftwotox ERROR + .long serror //$11-7 ftwotox ERROR + + .long stentox //$12-0 ftentox norm + .long ld_pone //$12-1 ftentox zero + .long szr_inf //$12-2 ftentox inf + .long src_nan //$12-3 ftentox nan + .long stentoxd //$12-4 ftentox denorm + .long serror //$12-5 ftentox ERROR + .long serror //$12-6 ftentox ERROR + .long serror //$12-7 ftentox ERROR + + .long serror //$13-0 ERROR - illegal extension + .long serror //$13-1 ERROR - illegal extension + .long serror //$13-2 ERROR - illegal extension + .long serror //$13-3 ERROR - illegal extension + .long serror //$13-4 ERROR - illegal extension + .long serror //$13-5 ERROR - illegal extension + .long serror //$13-6 ERROR - illegal extension + .long serror //$13-7 ERROR - illegal extension + + .long sslogn //$14-0 flogn norm + .long t_dz2 //$14-1 flogn zero + .long sopr_inf //$14-2 flogn inf + .long src_nan //$14-3 flogn nan + .long sslognd //$14-4 flogn denorm + .long serror //$14-5 flogn ERROR + .long serror //$14-6 flogn ERROR + .long serror //$14-7 flogn ERROR + + .long sslog10 //$15-0 flog10 norm + .long t_dz2 //$15-1 flog10 zero + .long sopr_inf //$15-2 flog10 inf + .long src_nan //$15-3 flog10 nan + .long sslog10d //$15-4 flog10 denorm + .long serror //$15-5 flog10 ERROR + .long serror //$15-6 flog10 ERROR + .long serror //$15-7 flog10 ERROR + + .long sslog2 //$16-0 flog2 norm + .long t_dz2 //$16-1 flog2 zero + .long sopr_inf //$16-2 flog2 inf + .long src_nan //$16-3 flog2 nan + .long sslog2d //$16-4 flog2 denorm + .long serror //$16-5 flog2 ERROR + .long serror //$16-6 flog2 ERROR + .long serror //$16-7 flog2 ERROR + + .long serror //$17-0 ERROR - illegal extension + .long serror //$17-1 ERROR - illegal extension + .long serror //$17-2 ERROR - illegal extension + .long serror //$17-3 ERROR - illegal extension + .long serror //$17-4 ERROR - illegal extension + .long serror //$17-5 ERROR - illegal extension + .long serror //$17-6 ERROR - illegal extension + .long serror //$17-7 ERROR - illegal extension + + .long serror //$18-0 ERROR - illegal extension + .long serror //$18-1 ERROR - illegal extension + .long serror //$18-2 ERROR - illegal extension + .long serror //$18-3 ERROR - illegal extension + .long serror //$18-4 ERROR - illegal extension + .long serror //$18-5 ERROR - illegal extension + .long serror //$18-6 ERROR - illegal extension + .long serror //$18-7 ERROR - illegal extension + + .long scosh //$19-0 fcosh norm + .long ld_pone //$19-1 fcosh zero + .long ld_pinf //$19-2 fcosh inf + .long src_nan //$19-3 fcosh nan + .long scoshd //$19-4 fcosh denorm + .long serror //$19-5 fcosh ERROR + .long serror //$19-6 fcosh ERROR + .long serror //$19-7 fcosh ERROR + + .long serror //$1a-0 ERROR - illegal extension + .long serror //$1a-1 ERROR - illegal extension + .long serror //$1a-2 ERROR - illegal extension + .long serror //$1a-3 ERROR - illegal extension + .long serror //$1a-4 ERROR - illegal extension + .long serror //$1a-5 ERROR - illegal extension + .long serror //$1a-6 ERROR - illegal extension + .long serror //$1a-7 ERROR - illegal extension + + .long serror //$1b-0 ERROR - illegal extension + .long serror //$1b-1 ERROR - illegal extension + .long serror //$1b-2 ERROR - illegal extension + .long serror //$1b-3 ERROR - illegal extension + .long serror //$1b-4 ERROR - illegal extension + .long serror //$1b-5 ERROR - illegal extension + .long serror //$1b-6 ERROR - illegal extension + .long serror //$1b-7 ERROR - illegal extension + + .long sacos //$1c-0 facos norm + .long ld_ppi2 //$1c-1 facos zero + .long t_operr //$1c-2 facos inf + .long src_nan //$1c-3 facos nan + .long sacosd //$1c-4 facos denorm + .long serror //$1c-5 facos ERROR + .long serror //$1c-6 facos ERROR + .long serror //$1c-7 facos ERROR + + .long scos //$1d-0 fcos norm + .long ld_pone //$1d-1 fcos zero + .long t_operr //$1d-2 fcos inf + .long src_nan //$1d-3 fcos nan + .long scosd //$1d-4 fcos denorm + .long serror //$1d-5 fcos ERROR + .long serror //$1d-6 fcos ERROR + .long serror //$1d-7 fcos ERROR + + .long sgetexp //$1e-0 fgetexp norm + .long szero //$1e-1 fgetexp zero + .long t_operr //$1e-2 fgetexp inf + .long src_nan //$1e-3 fgetexp nan + .long sgetexpd //$1e-4 fgetexp denorm + .long serror //$1e-5 fgetexp ERROR + .long serror //$1e-6 fgetexp ERROR + .long serror //$1e-7 fgetexp ERROR + + .long sgetman //$1f-0 fgetman norm + .long szero //$1f-1 fgetman zero + .long t_operr //$1f-2 fgetman inf + .long src_nan //$1f-3 fgetman nan + .long sgetmand //$1f-4 fgetman denorm + .long serror //$1f-5 fgetman ERROR + .long serror //$1f-6 fgetman ERROR + .long serror //$1f-7 fgetman ERROR + + .long serror //$20-0 ERROR - illegal extension + .long serror //$20-1 ERROR - illegal extension + .long serror //$20-2 ERROR - illegal extension + .long serror //$20-3 ERROR - illegal extension + .long serror //$20-4 ERROR - illegal extension + .long serror //$20-5 ERROR - illegal extension + .long serror //$20-6 ERROR - illegal extension + .long serror //$20-7 ERROR - illegal extension + + .long pmod //$21-0 fmod all + .long pmod //$21-1 fmod all + .long pmod //$21-2 fmod all + .long pmod //$21-3 fmod all + .long pmod //$21-4 fmod all + .long serror //$21-5 fmod ERROR + .long serror //$21-6 fmod ERROR + .long serror //$21-7 fmod ERROR + + .long serror //$22-0 ERROR - illegal extension + .long serror //$22-1 ERROR - illegal extension + .long serror //$22-2 ERROR - illegal extension + .long serror //$22-3 ERROR - illegal extension + .long serror //$22-4 ERROR - illegal extension + .long serror //$22-5 ERROR - illegal extension + .long serror //$22-6 ERROR - illegal extension + .long serror //$22-7 ERROR - illegal extension + + .long serror //$23-0 ERROR - illegal extension + .long serror //$23-1 ERROR - illegal extension + .long serror //$23-2 ERROR - illegal extension + .long serror //$23-3 ERROR - illegal extension + .long serror //$23-4 ERROR - illegal extension + .long serror //$23-5 ERROR - illegal extension + .long serror //$23-6 ERROR - illegal extension + .long serror //$23-7 ERROR - illegal extension + + .long serror //$24-0 ERROR - illegal extension + .long serror //$24-1 ERROR - illegal extension + .long serror //$24-2 ERROR - illegal extension + .long serror //$24-3 ERROR - illegal extension + .long serror //$24-4 ERROR - illegal extension + .long serror //$24-5 ERROR - illegal extension + .long serror //$24-6 ERROR - illegal extension + .long serror //$24-7 ERROR - illegal extension + + .long prem //$25-0 frem all + .long prem //$25-1 frem all + .long prem //$25-2 frem all + .long prem //$25-3 frem all + .long prem //$25-4 frem all + .long serror //$25-5 frem ERROR + .long serror //$25-6 frem ERROR + .long serror //$25-7 frem ERROR + + .long pscale //$26-0 fscale all + .long pscale //$26-1 fscale all + .long pscale //$26-2 fscale all + .long pscale //$26-3 fscale all + .long pscale //$26-4 fscale all + .long serror //$26-5 fscale ERROR + .long serror //$26-6 fscale ERROR + .long serror //$26-7 fscale ERROR + + .long serror //$27-0 ERROR - illegal extension + .long serror //$27-1 ERROR - illegal extension + .long serror //$27-2 ERROR - illegal extension + .long serror //$27-3 ERROR - illegal extension + .long serror //$27-4 ERROR - illegal extension + .long serror //$27-5 ERROR - illegal extension + .long serror //$27-6 ERROR - illegal extension + .long serror //$27-7 ERROR - illegal extension + + .long serror //$28-0 ERROR - illegal extension + .long serror //$28-1 ERROR - illegal extension + .long serror //$28-2 ERROR - illegal extension + .long serror //$28-3 ERROR - illegal extension + .long serror //$28-4 ERROR - illegal extension + .long serror //$28-5 ERROR - illegal extension + .long serror //$28-6 ERROR - illegal extension + .long serror //$28-7 ERROR - illegal extension + + .long serror //$29-0 ERROR - illegal extension + .long serror //$29-1 ERROR - illegal extension + .long serror //$29-2 ERROR - illegal extension + .long serror //$29-3 ERROR - illegal extension + .long serror //$29-4 ERROR - illegal extension + .long serror //$29-5 ERROR - illegal extension + .long serror //$29-6 ERROR - illegal extension + .long serror //$29-7 ERROR - illegal extension + + .long serror //$2a-0 ERROR - illegal extension + .long serror //$2a-1 ERROR - illegal extension + .long serror //$2a-2 ERROR - illegal extension + .long serror //$2a-3 ERROR - illegal extension + .long serror //$2a-4 ERROR - illegal extension + .long serror //$2a-5 ERROR - illegal extension + .long serror //$2a-6 ERROR - illegal extension + .long serror //$2a-7 ERROR - illegal extension + + .long serror //$2b-0 ERROR - illegal extension + .long serror //$2b-1 ERROR - illegal extension + .long serror //$2b-2 ERROR - illegal extension + .long serror //$2b-3 ERROR - illegal extension + .long serror //$2b-4 ERROR - illegal extension + .long serror //$2b-5 ERROR - illegal extension + .long serror //$2b-6 ERROR - illegal extension + .long serror //$2b-7 ERROR - illegal extension + + .long serror //$2c-0 ERROR - illegal extension + .long serror //$2c-1 ERROR - illegal extension + .long serror //$2c-2 ERROR - illegal extension + .long serror //$2c-3 ERROR - illegal extension + .long serror //$2c-4 ERROR - illegal extension + .long serror //$2c-5 ERROR - illegal extension + .long serror //$2c-6 ERROR - illegal extension + .long serror //$2c-7 ERROR - illegal extension + + .long serror //$2d-0 ERROR - illegal extension + .long serror //$2d-1 ERROR - illegal extension + .long serror //$2d-2 ERROR - illegal extension + .long serror //$2d-3 ERROR - illegal extension + .long serror //$2d-4 ERROR - illegal extension + .long serror //$2d-5 ERROR - illegal extension + .long serror //$2d-6 ERROR - illegal extension + .long serror //$2d-7 ERROR - illegal extension + + .long serror //$2e-0 ERROR - illegal extension + .long serror //$2e-1 ERROR - illegal extension + .long serror //$2e-2 ERROR - illegal extension + .long serror //$2e-3 ERROR - illegal extension + .long serror //$2e-4 ERROR - illegal extension + .long serror //$2e-5 ERROR - illegal extension + .long serror //$2e-6 ERROR - illegal extension + .long serror //$2e-7 ERROR - illegal extension + + .long serror //$2f-0 ERROR - illegal extension + .long serror //$2f-1 ERROR - illegal extension + .long serror //$2f-2 ERROR - illegal extension + .long serror //$2f-3 ERROR - illegal extension + .long serror //$2f-4 ERROR - illegal extension + .long serror //$2f-5 ERROR - illegal extension + .long serror //$2f-6 ERROR - illegal extension + .long serror //$2f-7 ERROR - illegal extension + + .long ssincos //$30-0 fsincos norm + .long ssincosz //$30-1 fsincos zero + .long ssincosi //$30-2 fsincos inf + .long ssincosnan //$30-3 fsincos nan + .long ssincosd //$30-4 fsincos denorm + .long serror //$30-5 fsincos ERROR + .long serror //$30-6 fsincos ERROR + .long serror //$30-7 fsincos ERROR + + .long ssincos //$31-0 fsincos norm + .long ssincosz //$31-1 fsincos zero + .long ssincosi //$31-2 fsincos inf + .long ssincosnan //$31-3 fsincos nan + .long ssincosd //$31-4 fsincos denorm + .long serror //$31-5 fsincos ERROR + .long serror //$31-6 fsincos ERROR + .long serror //$31-7 fsincos ERROR + + .long ssincos //$32-0 fsincos norm + .long ssincosz //$32-1 fsincos zero + .long ssincosi //$32-2 fsincos inf + .long ssincosnan //$32-3 fsincos nan + .long ssincosd //$32-4 fsincos denorm + .long serror //$32-5 fsincos ERROR + .long serror //$32-6 fsincos ERROR + .long serror //$32-7 fsincos ERROR + + .long ssincos //$33-0 fsincos norm + .long ssincosz //$33-1 fsincos zero + .long ssincosi //$33-2 fsincos inf + .long ssincosnan //$33-3 fsincos nan + .long ssincosd //$33-4 fsincos denorm + .long serror //$33-5 fsincos ERROR + .long serror //$33-6 fsincos ERROR + .long serror //$33-7 fsincos ERROR + + .long ssincos //$34-0 fsincos norm + .long ssincosz //$34-1 fsincos zero + .long ssincosi //$34-2 fsincos inf + .long ssincosnan //$34-3 fsincos nan + .long ssincosd //$34-4 fsincos denorm + .long serror //$34-5 fsincos ERROR + .long serror //$34-6 fsincos ERROR + .long serror //$34-7 fsincos ERROR + + .long ssincos //$35-0 fsincos norm + .long ssincosz //$35-1 fsincos zero + .long ssincosi //$35-2 fsincos inf + .long ssincosnan //$35-3 fsincos nan + .long ssincosd //$35-4 fsincos denorm + .long serror //$35-5 fsincos ERROR + .long serror //$35-6 fsincos ERROR + .long serror //$35-7 fsincos ERROR + + .long ssincos //$36-0 fsincos norm + .long ssincosz //$36-1 fsincos zero + .long ssincosi //$36-2 fsincos inf + .long ssincosnan //$36-3 fsincos nan + .long ssincosd //$36-4 fsincos denorm + .long serror //$36-5 fsincos ERROR + .long serror //$36-6 fsincos ERROR + .long serror //$36-7 fsincos ERROR + + .long ssincos //$37-0 fsincos norm + .long ssincosz //$37-1 fsincos zero + .long ssincosi //$37-2 fsincos inf + .long ssincosnan //$37-3 fsincos nan + .long ssincosd //$37-4 fsincos denorm + .long serror //$37-5 fsincos ERROR + .long serror //$37-6 fsincos ERROR + .long serror //$37-7 fsincos ERROR + + |end |