Talk About Network



Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C++ Moderated > Macro To Genera...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 1 of 18 Topic 9553 of 9593
Post > Topic >>

Macro To Generate Inline Assembly

by Le Chaud Lapin <jaibuduvin@[EMAIL PROTECTED] > Apr 27, 2008 at 07:29 AM

Hi All,

Knuth said:

"Premature optimization is the root of all evil."

So I waited until my (big) Integer class was sufficiently mature
before optimizing it.

An Integer is formed from an array of machine words, and there are
four critical operations, ADD, SUBTRACT, MULTIPLY, and DIVIDE, that
get invoked repeatedly against two of these machine words to support
the class-level overloaded operators, +, -, *, %, and /.

Currently, ADD, SUBTRACT, MULTIPLY, AND DIVIDE are written in C++. I
would like to replace the C++ code with inline assembly, using a macro
to generate the inline assembly to facilitate support for as many
CPU's as possible [Yes, I know some compilers do not support inline
assembly for some CPU's].

I tried:

#define MULTIPLY(A, B, lower_word, upper_word)\
{\
	_asm mov eax, A;\
	_asm mul B;\
	_asm mov upper_word, edx;\
	_asm mov lower_word, eax;\
}

int foo ()
{
   unsigned int L, H;
   MULTIPLY(0, 0, L, H);
   return 0;
}

...and I get the following error:

1>Compiling...
1>Integer.cpp
1>..\Integer\Integer.cpp(44) : error C2447: '{' : missing function
header (old-style formal list?)
1>..\Integer\Integer.cpp(65) : error C2017: illegal escape sequence

...using Visual Studio 2005.

There seems to be some kind of strange interaction between the
preprocessor and the inline-assembly lexical analyzer.

Naturally, I would like to understand not just how to do this for
VS2005, but for all systems/compilers, so that I am not left guessing
whether I got it right or not.

TIA,

-Le Chaud Lapin-

-- 
      [ See http://www.gotw.ca/resources/clcm.htm
for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]




 18 Posts in Topic:
Macro To Generate Inline Assembly
Le Chaud Lapin <jaibud  2008-04-27 07:29:36 
Re: Macro To Generate Inline Assembly
=?ISO-8859-1?Q?Daniel_Kr=  2008-04-27 12:39:09 
Re: Macro To Generate Inline Assembly
Le Chaud Lapin <jaibud  2008-04-27 12:39:05 
Re: Macro To Generate Inline Assembly
Tony Delroy <tony_in_d  2008-04-28 02:13:23 
Re: Macro To Generate Inline Assembly
Le Chaud Lapin <jaibud  2008-04-28 16:06:49 
Re: Macro To Generate Inline Assembly
Mathias Gaunard <loufo  2008-04-28 20:34:54 
Re: Macro To Generate Inline Assembly
Le Chaud Lapin <jaibud  2008-04-28 23:23:12 
Re: Macro To Generate Inline Assembly
=?ISO-8859-1?Q?Daniel_Kr=  2008-04-29 10:35:49 
Re: Macro To Generate Inline Assembly
Francis Glassborow <fr  2008-04-29 10:43:23 
Re: Macro To Generate Inline Assembly
Le Chaud Lapin <jaibud  2008-04-29 17:38:48 
Re: Macro To Generate Inline Assembly
Le Chaud Lapin <jaibud  2008-04-29 17:42:22 
Re: Macro To Generate Inline Assembly
galathaea <galathaea@[  2008-04-29 18:29:42 
Re: Macro To Generate Inline Assembly
Carl Barron <cbarron41  2008-04-30 04:13:23 
Re: Macro To Generate Inline Assembly
Mathias Gaunard <loufo  2008-04-30 04:13:22 
Re: Macro To Generate Inline Assembly
Le Chaud Lapin <jaibud  2008-04-30 10:42:39 
Re: Macro To Generate Inline Assembly
John Nagle <nagle@[EMA  2008-05-03 06:13:27 
Re: Macro To Generate Inline Assembly
Le Chaud Lapin <jaibud  2008-05-03 16:10:43 
Re: Macro To Generate Inline Assembly
Le Chaud Lapin <jaibud  2008-05-03 16:13:24 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Wed May 14 2:31:24 CDT 2008.