Freescale Semiconductor SC140 Immediate Data Transfer to Isap registers, Following line of code

Models: SC140

1 760
Download 760 pages 48.94 Kb
Page 242
Image 242

Immediate Data Transfer to ISAP registers

Example 6-2. ISAP-Core register transfers

The following line of code,

core_ins {move_special d1,k0}

That uses these instructions,

1st - core_ins = a generic core instruction

2nd - {move_special d1, k0} = a fictional ISAP instruction (for illustration purposes only), whose intent is to take the data in d1 (a core register), and place it in the k0 ISAP register.

Is translated by the core assembler (at the opcode level) to read, in effect, the following:

core_ins move.l d1,d0 {move_special bus,k0}

The core does not take the data in d1 and place it in d0, but it takes the data in d1, and drives it on the core-ISAP register bus. In a complementary manner, the ISAP move_special instruction should only sample the data from the core-ISAP bus, and place it in the k0 ISAP register.

6.6 Immediate Data Transfer to ISAP registers

The ISAP architect can define ISAP instructions that write immediate data to ISAP registers. These instructions are treated in a similar manner like memory moves instructions: the assembler translate the ISAP instructions into two instructions: one core instruction that writes an immediate value to a dummy core register, and an ISAP instruction that samples the data to an ISAP register.

The assembler can use any move-immediate core instruction to a DALU register, for example “MOVE.L #s32,D0” (See Appendix , “MOVE.L,” on page A-272). When executed in parallel with an ISAP instruction, the core does not sample the data to a DALU register. This enables performing immediate data transfers to ISAP registers.

Example 6-3. ISAP-Core register transfers

The following line of code,

core_ins {move_special #$1234,k0}

That uses these instructions,

1st - core_ins = a generic core instruction

2nd - {move_special #$1234, k0} = a fictional ISAP instruction (for illustration purposes only), whose intent is to take the number $1234 and place it in the k0 ISAP register.

Is translated by the core assembler (at the opcode level) to read, in effect, the following:

core_ins move.l #$1234,d0 {move_special bus,k0}

The core does not take the number $1234 and place it in d0, but it takes the number $1234, and drives it on the core-ISAP register bus. In a complementary manner, the ISAP move_special instruction should only sample the data from the core-ISAP bus, and place it in the k0 ISAP register.

6-62

SC140 DSP Core Reference Manual

Page 242
Image 242
Freescale Semiconductor SC140 specifications Immediate Data Transfer to Isap registers, Following line of code