
INSTRUCTION SET REFERENCE
6-48
6.2.25
ediv
Mnemonic:
ediv
Extended Divide
Format:
ediv
src1,
src2,
dst
reg/lit
reg/lit
reg
Description:
Divides src2 by src1 and stores result in dst. The src2 value is a long ordinal
(64 bits) contained in two adjacent registers. src2 specifies the lower
numbered register which contains operand’s least significant bits. src2 must
be an even numbered register (i.e., g0, g2, ... or r4, r6, r8... ). src1 value is a
normal ordinal (i.e., 32 bits).
The result consists of a one-word remainder and a one-word quotient.
Remainder is stored in the register designated by dst; quotient is stored in the
next highest numbered register. dst must be an even numbered register (i.e.,
g0, g2, ... r4, r6, r8, ...).
This instruction performs ordinal arithmetic.
When this operation overflows (quotient or remainder do not fit in 32 bits),
no fault is raised and the result is undefined.
Action:
if((reg_number(src2)%2 != 0) || (reg_number(dst)%2 != 0))
{
dst[0] = undefined_value;
dst[1] = undefined_value;
generate_fault (OPERATION.INVALID_OPERAND);
}
else if(src1 == 0)
{
dst[0] = undefined_value;
dst[1] = undefined_value;
generate_fault(ARITHMETIC.DIVIDE_ZERO);
}
else
# Quotient
{
dst[1] = ((src2 + reg_value(src2[1]) * 2**32) / src1)[31:0];
#Remainder
dst[0] = (src2 + reg_value(src2[1]) * 2**32
- ((src2 + reg_value(src2[1]) * 2**32 / src1) * src1);
}
Faults:
STANDARD
Refer to
section 6.1.6, “Faults” (pg. 6-5)
.
ARITHMETIC.ZERO_DIVIDE
The src1 operand is 0.
Example:
ediv g3, g4, g10
# g10
=
remainder of g4,g5/g3
# g11
=
quotient of g4,g5/g3
Opcode:
ediv
671H
REG
See Also:
emul, divi, divo
Summary of Contents for i960 Jx
Page 1: ...Release Date December 1997 Order Number 272483 002 i960 Jx Microprocessor Developer s Manual ...
Page 24: ......
Page 25: ...1 INTRODUCTION ...
Page 26: ......
Page 35: ...2 DATA TYPES AND MEMORY ADDRESSING MODES ...
Page 36: ......
Page 46: ......
Page 47: ...3 PROGRAMMING ENVIRONMENT ...
Page 48: ......
Page 73: ...4 CACHE AND ON CHIP DATA RAM ...
Page 74: ......
Page 85: ...5 INSTRUCTION SET OVERVIEW ...
Page 86: ......
Page 111: ...6 INSTRUCTION SET REFERENCE ...
Page 112: ......
Page 233: ...7 PROCEDURE CALLS ...
Page 234: ......
Page 256: ......
Page 257: ...8 FAULTS ...
Page 258: ......
Page 291: ...9 TRACING AND DEBUGGING ...
Page 292: ......
Page 309: ...10 TIMERS ...
Page 310: ......
Page 324: ......
Page 325: ...11 INTERRUPTS ...
Page 326: ......
Page 369: ...12 INITIALIZATION AND SYSTEM REQUIREMENTS ...
Page 370: ......
Page 412: ......
Page 413: ...13 MEMORY CONFIGURATION ...
Page 414: ......
Page 429: ...14 EXTERNAL BUS ...
Page 430: ......
Page 468: ......
Page 469: ...15 TEST FEATURES ...
Page 470: ......
Page 493: ...A CONSIDERATIONS FOR WRITING PORTABLE CODE ...
Page 494: ......
Page 502: ......
Page 503: ...B OPCODES AND EXECUTION TIMES ...
Page 504: ......
Page 515: ...C MACHINE LEVEL INSTRUCTION FORMATS ...
Page 516: ......
Page 523: ...D REGISTER AND DATA STRUCTURES ...
Page 524: ......
Page 550: ......
Page 551: ...GLOSSARY ...
Page 552: ......
Page 561: ...INDEX ...
Page 562: ......
Page 578: ......