Commit | Line | Data |
---|---|---|
7c27088c KB |
1 | /*- |
2 | * Copyright (c) 1986 The Regents of the University of California. | |
3 | * All rights reserved. | |
4 | * | |
5 | * This code is derived from software contributed to Berkeley by | |
6 | * Computer Consoles Inc. | |
7 | * | |
8 | * %sccs.include.redist.c% | |
9 | * | |
10 | * @(#)Amull3.c 7.1 (Berkeley) %G% | |
11 | */ | |
28586faa | 12 | |
6499767c | 13 | #include "align.h" |
28586faa SL |
14 | mull3(infop) process_info *infop; |
15 | /* | |
16 | /* Multiply longwords, 3 operands. | |
17 | /* | |
18 | /*****************************************/ | |
19 | { | |
20 | register long Register_12; /* Has to be first reg ! */ | |
21 | register long result, data0, data1; | |
22 | ||
23 | data0 = operand(infop,0)->data; | |
24 | data1 = operand(infop,1)->data; | |
25 | Register_12=psl; | |
26 | Set_psl(r12); /* restore the user psl */ | |
27 | result = data0 * data1; | |
28 | asm (" movpsl r12"); | |
29 | New_cc (Register_12); | |
30 | write_back (infop,result, operand(infop,2) ); | |
31 | } |