--- a/src/core/model/int64x64-cairo.cc Sat Nov 10 18:45:37 2012 +0100
+++ b/src/core/model/int64x64-cairo.cc Sat Nov 10 19:16:38 2012 +0100
@@ -21,11 +21,14 @@
#include "test.h"
#include "abort.h"
#include "assert.h"
+#include "log.h"
#include <cmath>
#include <iostream>
namespace ns3 {
+NS_LOG_COMPONENT_DEFINE ("int64x64-cairo");
+
#define OUTPUT_SIGN(sa,sb,ua,ub) \
({ bool negA, negB; \
negA = _cairo_int128_negative (sa); \
@@ -39,6 +42,7 @@
void
int64x64_t::Mul (int64x64_t const &o)
{
+ NS_LOG_FUNCTION (this << &o);
cairo_uint128_t a, b, result;
bool sign = OUTPUT_SIGN (_v, o._v, a, b);
result = Umul (a, b);
@@ -54,6 +58,7 @@
cairo_uint128_t
int64x64_t::Umul (cairo_uint128_t a, cairo_uint128_t b)
{
+ NS_LOG_FUNCTION (&a << &b);
cairo_uint128_t result;
cairo_uint128_t hiPart,loPart,midPart;
@@ -80,6 +85,7 @@
void
int64x64_t::Div (int64x64_t const &o)
{
+ NS_LOG_FUNCTION (this << &o);
cairo_uint128_t a, b, result;
bool sign = OUTPUT_SIGN (_v, o._v, a, b);
result = Udiv (a, b);
@@ -89,6 +95,7 @@
cairo_uint128_t
int64x64_t::Udiv (cairo_uint128_t a, cairo_uint128_t b)
{
+ NS_LOG_FUNCTION (&a << &b);
cairo_uquorem128_t qr = _cairo_uint128_divrem (a, b);
cairo_uint128_t result = _cairo_uint128_lsl (qr.quo, 64);
// Now, manage the remainder
@@ -113,6 +120,7 @@
void
int64x64_t::MulByInvert (const int64x64_t &o)
{
+ NS_LOG_FUNCTION (this << &o);
bool negResult = _cairo_int128_negative (_v);
cairo_uint128_t a = negResult ? _cairo_int128_negate (_v) : _v;
cairo_uint128_t result = UmulByInvert (a, o._v);
@@ -122,6 +130,7 @@
cairo_uint128_t
int64x64_t::UmulByInvert (cairo_uint128_t a, cairo_uint128_t b)
{
+ NS_LOG_FUNCTION (&a << &b);
cairo_uint128_t result;
cairo_uint128_t hi, mid;
hi = _cairo_uint64x64_128_mul (a.hi, b.hi);
@@ -135,6 +144,7 @@
int64x64_t
int64x64_t::Invert (uint64_t v)
{
+ NS_LOG_FUNCTION (v);
NS_ASSERT (v > 1);
cairo_uint128_t a, factor;
a.hi = 1;