⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fpsymbol.h

📁 KPIT GNU Tools is a set of GNU development tools for Renesas microcontrollers.
💻 H
📖 第 1 页 / 共 5 页
字号:
;  USAGE:;;    cp_write_s  reg [,LSB_reg] [,START]       for floating-point operands; or cp_write_s  reg, INT [,START]             for integer operands;;    Transferring double-precision floating-point operands - Either of;       two forms is acceptable:;;               cp_write_s   reg;          or   cp_write_s   reg, LSB_reg;;       If LSB_reg is omitted, the LSBs are taken from the next g.p.;       register.;;       Ex:     cp_write_s   lr2     Transfers the contents of lr2 to;                                    the most-significant half of Am29027;                                    register S, and the contents of lr3;                                    to the least-significant half.;;               cp_write_s   lr2,lr5 Transfers the contents of lr2 to;                                    the most-significant half of Am29027;                                    register S, and the contents of lr5;                                    to the least-significant half.;;;    Transferring single-precision floating-point operands - Use the;       form:;;               cp_write_s   reg;;;       Ex:     cp_write_s   lr2     Transfers the contents of lr2 to;                                    the most-significant half of Am29027;                                    register S, (the contents of lr3;                                    will be transferred to the least-;                                    significant half of register S, but;                                    these bits are don't cares).;;;    Transferring integer operands - Use the form:;;               cp_write_s   reg,INT;;;       Ex:     cp_write_s   lr2,INT Transfers the contents of lr2 to;                                    the least-significant half of Am29027;                                    register S, (the contents of lr2;                                    will also be transferred to the most-;                                    significant half of register S, but;                                    these bits are don't cares).;;;    Starting an Am29027 operation - Any of the forms above may be;       appended with parameter START, e.g.:;;               cp_write_s   lr2,START;;               cp_write_s   lr2,lr5,START;;               cp_write_s   lr2,INT,START;;;============================================================================; .macro cp_write_s,p1,p2,p3;   .if $narg==0     .err     .print "cp_write_s: missing parameter(s)"   .endif;;   .if $narg==1     store 1,CP_WRITE_S,p1,%%((&p1)+1)     .exitm   .endif;;   .if $narg==2;     .ifeqs "@p2@","INT"       store 1,CP_WRITE_S,p1,p1       .exitm     .endif;     .ifeqs "@p2@","START"       store 1,CP_WRITE_S|CP_START,p1,%%((&p1)+1)       .exitm     .endif;     store 1,CP_WRITE_S,p1,p2     .exitm;   .endif;;   .if $narg==3;     .ifeqs "@p2@","START"       .ifeqs "@p3@","INT"         store 1,CP_WRITE_S|CP_START,p1,p1       .else         .err         .print "cp_write_s: bad parameter list"       .endif       .exitm     .endif;     .ifeqs "@p2@","INT"       .ifeqs "@p3@","START"         store 1,CP_WRITE_S|CP_START,p1,p1       .else         .err         .print "cp_write_s: bad parameter list"       .endif       .exitm     .endif;     .ifeqs "@p3@","START"       store 1,CP_WRITE_S|CP_START,p1,p2     .else       .err       .print "cp_write_s: bad parameter list"     .endif     .exitm;   .endif;;   .if $narg>=4     .err     .print "cp_write_s: too many parameters"   .endif; .endm;;;;;============================================================================;  MACRO NAME: cp_write_rs;;  WRITTEN BY: Bob Perlman;;  MOST RECENT UPDATE:  April 16, 1988;;  FUNCTION:   Transfers two 32-bit floating-point operands to Am29027;              input registers R and S;;  PARAMETERS:;    reg1     - the Am29000 g.p. register containing the 32-bit operand to be;               transferred to register R;;    reg2     - the Am29000 g.p. register containing the 32-bit operand to be;               transferred to register S;;    START    - indicates that a new Am29027 operation is to be started;               once the operands have been transferred;;;  USAGE:;;    cp_write_rs  reg1, reg2 [,START];;       Ex: cp_write_rs  lr2,lr5       Transfers the contents of lr2 to;                                      the most-significant half of Am29027;                                      register R, and the contents of lr5;                                      to the most-significant half of Am29027;                                      register S.;;           cp_write_rs  lr2,lr5,START Transfers the contents of lr2 to;                                      the most-significant half of Am29027;                                      register R, and the contents of lr5;                                      to the most-significant half of Am29027;                                      register S; a new operation is started;                                      once the transfer is complete.;;;;============================================================================; .macro cp_write_rs,p1,p2,p3;;   .if $narg<=1     .err     .print "cp_write_rs: missing parameter(s)"     .exitm   .endif;;   .if $narg==2     .ifeqs "@p2@","START"       .err       .print "cp_write_rs: bad parameter list"     .else       store 1,CP_WRITE_RS,p1,p2     .endif     .exitm   .endif;;   .if $narg==3     .ifeqs "@p3@","START"       store 1,CP_WRITE_RS|CP_START,p1,p2     .else       .err       .print "cp_write_rs: bad parameter list"     .endif     .exitm   .endif;;   .if $narg>=4     .err     .print "cp_write_rs: too many parameters"     .exitm   .endif; .endm;;;;;;;============================================================================;  MACRO NAME: cp_write_prec;;  WRITTEN BY: Bob Perlman;;  MOST RECENT UPDATE:  April 16, 1988;;  FUNCTION:   Transfers a word to the Am29027 precision register;;  PARAMETERS:;    reg      - the Am29000 g.p. register containing the word to be;               transferred to the Am29027 precision register;;  USAGE:;;    cp_write_prec  reg;;       Ex: cp_write_prec  lr2         Transfers the contents of lr2 to;                                      the Am29027 precision register.;;;============================================================================; .macro cp_write_prec,p1;;   .if $narg!=1     .err     .print "cp_write_prec: bad parameter list"   .else     store 1,CP_WRITE_PREC,p1,0   .endif; .endm;;;;;;;============================================================================;  MACRO NAME: cp_write_status;;  WRITTEN BY: Bob Perlman;;  MOST RECENT UPDATE:  April 16, 1988;;  FUNCTION:   Transfers a word to the Am29027 precision register;;  PARAMETERS:;    reg        - the Am29000 g.p. register containing the word to be;                 transferred to the Am29027 status register;;    RESTORE    - indicates that this is the last step of a state restoration;                 sequence (flow-through mode only);;    INVALIDATE - indicates that the current contents of the ALU pipeline;                 register are to be invalidated (pipeline mode only);;  USAGE:;;    cp_write_status  reg [,RESTORE|INVALIDATE];;       Ex: cp_write_status  lr2            Transfers the contents of lr2 to;                                           the Am29027 status register.;;;           cp_write_status  lr2,RESTORE    Transfers the contents of lr2 to;                                           the Am29027 status register, and;                                           completes the state restore;                                           sequence;;           cp_write_status  lr2,INVALIDATE Transfers the contents of lr2 to;                                           the Am29027 status register, and;                                           invalidates the contents of the;                                           ALU pipeline.;;;============================================================================; .macro cp_write_status,p1,p2;   .if $narg==0     .err     .print "cp_write_status: missing parameter(s)"   .endif;;   .if $narg==1     store 1,CP_WRITE_STATUS,p1,0     .exitm   .endif;;   .if $narg==2;     .ifeqs "@p2@","RESTORE"       store 1,CP_WRITE_STATUS|CP_START,p1,0       .exitm     .endif;     .ifeqs "@p2@","INVALIDATE"       store 1,CP_WRITE_STATUS|CP_START,p1,0       .exitm     .endif;     .err     .print "cp_write_status: bad parameter list"     .exitm;   .endif;;   .if $narg >=3     .err     .print "cp_write_status: too many parameters"     .exitm   .endif; .endm;;;;;;============================================================================;  MACRO NAME: cp_write_inst;;  WRITTEN BY: Bob Perlman;;  MOST RECENT UPDATE:  April 16, 1988;;  FUNCTION:   Transfers an instruction word to the Am29027 instruction;              register;;  PARAMETERS:;    reg     - the Am29000 g.p. register containing the word to be;              transferred to the Am29027 instruction register;;    START   - indicates that a new Am29027 operation is to be started;              once the instruction word has been transferred;;  USAGE:;;    cp_write_inst  reg [,START];;       Ex: cp_write_inst  lr2            Transfers the contents of lr2 to;                                         the Am29027 instruction register.;;;           cp_write_inst  lr2,START      Transfers the contents of lr2 to;                                         the Am29027 status register; a;                                         new operation is started once the;                                         transfer is complete.;;;============================================================================; .macro cp_write_inst,p1,p2;   .if $narg==0     .err     .print "cp_write_inst: missing parameter(s)"   .endif;;   .if $narg==1     store 1,CP_WRITE_INST,p1,p1     .exitm   .endif;;   .if $narg==2;     .ifeqs "@p2@","START"       store 1,CP_WRITE_INST|CP_START,p1,p1     .else       .err       .print "cp_write_inst: bad parameter list"     .endif     .exitm;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -