Sponsored Content
Full Discussion: C multiplication with GCC
Top Forums Programming C multiplication with GCC Post 302544648 by pheonix on Thursday 4th of August 2011 11:42:23 AM
Old 08-04-2011
C multiplication with GCC

Hi all, newbie here.
Does anyone know if it is possible to use GCC or Clang to multiply
two unsigned numbers and have it use for intel instructions, the mull instruction or an imul. I can't figure how to word this to accomplish this task:
Code:
(int)(((unsigned long long)result * (unsigned)2290649225) >> 37);

result is max of 2^17 bits, and trying to retrieve high word >> 5 after a
mull or imul instruction. The above wording creates two multiply instructions.
This wording creates one instruction:
Code:
(int)(((unsigned long long)result * (unsigned)1145324613) >> 36);

Not sure intel can handle first and that's why gcc breaks into two multiplies???
I believe the second will accomplish my task, but now need to recheck all my code.
Thanx, and I'll probably get kicked (was smoking and typing)
Pheonix

Last edited by pludi; 08-04-2011 at 04:56 PM..
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Simple multiplication problem

I'am doing a tutorial where a simple calculator was given, then i noticed that you can't actually multiply this is how i have approached the problem so far. i just need if the user enters "*" to change it to "/*" ,is it possible? i know that * means the name of the last file in the directory... (8 Replies)
Discussion started by: greekozz
8 Replies

2. Linux

Multiplication with Fractions

Hello there, how do i multiply a fraction and a whole number? Example 20% of 50,000. I had gotten 0.2 using the following: chk=echo 20 100 | awk `{print $1/$2}` echo $chk $chk \* 50000 displays the error: non-numeric expression. (1 Reply)
Discussion started by: alby
1 Replies

3. Solaris

Installing gcc - recieve error message gcc : cannot execute

AIM- Install Oracle 11g on Solaris using VMWare Steps 1.Logged on as root 2.Created subfolders à /usr/local/bin & /usr/local/bin/gcc 3.Downloaded gcc & libiconv & unzipped them on my harddrive & burnt them on CD 4.Copied files from CD to /usr/local/bin/gcc 5.Terminal (root) à pkgadd -d... (8 Replies)
Discussion started by: Ackers
8 Replies

4. Shell Programming and Scripting

using awk multiplication

Suppose i have a file A 1*2*3*4 2*4*4*22 and second file B 2*3*4*5 4*4*6*7 By multiplying file A by file B that is file A by first column in file B respectively output shud be 2*6*12*20 8*16*24*154 my code is =$1 next } {for (f=1;f<=NF;f++) (2 Replies)
Discussion started by: cdfd123
2 Replies

5. UNIX for Dummies Questions & Answers

Exact Multiplication

Hi, I am writing a script in Bourne shell #!/bin/sh used=`quota -v | tail -1 | awk '{print $2}'` total=`quota -v | tail -1 | awk '{print $3}'` echo "$used" echo "$total" perc=`expr ${used} / ${total} * 100 | bc` echo "$perc" I want to get a percentage of quota used to total limit I... (5 Replies)
Discussion started by: desai.rishabh
5 Replies

6. UNIX for Dummies Questions & Answers

Multiplication using bc in a for loop

Hi, I would like to carry out a multiplication in a for loop but some how I get always zero. The result of the multiplication must be assigned to the variable x. Here is teh code for (( i=1;i<=15;i++)); do x=$( printf "%s\n " 'scale = 10; i*5.0*335.0*3.0/1000.0' | bc) echo $x $i... (5 Replies)
Discussion started by: f_o_555
5 Replies

7. UNIX for Dummies Questions & Answers

Matrix multiplication with different files

Hi, i have file1 which looks like: x1 y1 z1 x2 y2 z2 ...(and so on) and file2 which looks like: a11 a12 a13 a21 a22 a23 a31 a32 a33 and i want to replace file1 with the following values: x1' y1' z1' x2' y2' z2' ...(and so on) (2 Replies)
Discussion started by: ezitoc
2 Replies

8. Shell Programming and Scripting

Multiplication of array elements

Hi, I can't find out how to create correct code to get multiplication of each elements of array. Let's say I enter array into command line (2 3 4 5 6 8) and i need output 2*3*4*5*6*8=5760. I tried this one, but answer is 0. for i in $@; do mult=$((mult*i))done echo "mult: " $mult ... (4 Replies)
Discussion started by: rimasbimas
4 Replies

9. UNIX for Dummies Questions & Answers

Multiplication of two matrices

Hi there! I have two files like below File1(with a header, ~1000 rows, ~50 columns) ID1 ID2 ID3 ID4 ID5 MI1_A MI1_H MI2_A MI2_H 0 1 0 0 0 1 0 2 1 0 2 0 0 0 2 1 0 1 File2 (without a header, ~50 rows) MI1 A 0.4 3.1 MI2 B -0.2 0.1 Output ID2 M1_A M2_A 1 1*0.4 2*-0.2 2 2*0.4 0*-0.2 ... (22 Replies)
Discussion started by: Akang
22 Replies

10. UNIX for Beginners Questions & Answers

Matrix multiplication

I have two files. Row id in File1 matches the column id in file2 (starting from column7 )except the last 2 characters. File1 has 50 rows and File 2 has 56 columns. If the id matches I want to multiply the value in column3 of File1 to the entire column in File2. and in the final output print only... (11 Replies)
Discussion started by: Akang
11 Replies
emulate_branch(3)					     Library Functions Manual						 emulate_branch(3)

Name
       emulate_branch, execute_branch - branch emulation

Syntax
       #include <signal.h>

       emulate_branch(scp, branch_instruction)
       struct sigcontext *scp;
       unsigned long branch_instruction;

       execute_branch(branch_instruction)
       unsigned long branch_instruction;

Description
       The  function  is  passed  a signal context structure and a branch instruction.	It emulates the branch based on the register values in the
       signal context structure.  It modifies the value of the program counter in the signal context  structure  (sc_pc)  to  the  target  of  the
       branch_instruction.   The program counter must initially be pointing at the branch and the register values must be those at the time of the
       branch.	If the branch is not taken the program counter is advanced to point to the instruction after the delay slot (sc_pc += 8).

       If the branch instruction is a `branch on coprocessor 2' or `branch on coprocessor 3' instruction, calls to  execute  the  branch  in  data
       space to determine if it is taken or not.

Return Values
       The  function returns a 0 if the branch was emulated successfully.  A non-zero value indicates the value passed as a branch instruction was
       not a branch instruction.

       The function returns non-zero on taken branches and zero on non-taken branches.

Restrictions
       Since is only intended to be used by it does not check its parameter to see if in fact it is a branch instruction.  It is really a stop gap
       in case a coprocessor is added without the kernel fully supporting it (which is unlikely).

See Also
       cacheflush(2), sigvec(2), signal(3)

								       RISC							 emulate_branch(3)
All times are GMT -4. The time now is 06:08 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy