Profile

Cover photo
Rodrigo Belem
Works at INdT
Lives in Manaus
182 followers|91,037 views
AboutPostsPhotos

Stream

Rodrigo Belem

Shared publicly  - 
3
Kenneth Rohde Christiansen's profile photoEdisson Braga Jr.'s profile photo
2 comments
 
Great! :)
Add a comment...

Rodrigo Belem

Shared publicly  - 
 
 
Electronic Arts will be presenting at the Ubuntu Developer Summit next week. Expect some exciting news.
1
Kenneth Rohde Christiansen's profile photo
 
SWTOR? :-P
Add a comment...

Rodrigo Belem

Shared publicly  - 
 
 
Just how the things are going on Quasi-Engine: Parallax, StaticLayer, Sprite, Animation, Scene and Viewport
1
Add a comment...

Rodrigo Belem

Shared publicly  - 
 
 
Sony lança no Brasil rival do Netflix - e de graça
 ·  Translate
2
1
Add a comment...

Rodrigo Belem

Shared publicly  - 
 
INdT friends and me talking about the Chicken Wranglers development :-D
5
2
Éverton Arruda's profile photo
 
Nice!
Add a comment...
Have him in circles
182 people
Sebastian Kügler's profile photo
Ademar Reis's profile photo
Lamarque Souza's profile photo
Will Resende's profile photo
Helmer Mourao's profile photo
Lucas Brito Arruda's profile photo

Rodrigo Belem

Shared publicly  - 
 
I defended against a #zergrush on Google Search.
1
Add a comment...

Rodrigo Belem

Shared publicly  - 
 
 
I've wrote a small guide based on WebKit's wiki with hacks for Ubuntu Linux to set up development of Qt5/WebKit2 on Nokia N9 devices, please feel free to have a look and please have a feedback if anything goes wrong :)
1
Add a comment...

Rodrigo Belem

Shared publicly  - 
 
Nice! I already made part of this trip by boat :-)
2
Add a comment...

Rodrigo Belem

Shared publicly  - 
 
A simple Qt-based 2D game engine
 
Demo de parallax na Quasi Engine (por +Roger Zanoni)
1
Add a comment...

Rodrigo Belem

Shared publicly  - 
 
 
More bitwise tricks..

So my quest to calculate the hash and the length of a pathname component efficiently continues. I'm pretty happy with where I am now (some changes to the code have happened, it you actually want to see the current situation you need to check out the kernel mailing list post), but finding the number of bytes in the final mask bothers me.

Using an explicit loop is out - the branch mispredicts kill it. And while at least modern Intel CPU's do quite well with just using the bit scan instructions ("bsf") to find where the first NUL or '/' was in the word, that sucks on some older CPU's.

So I came up with the following trick to count the number of bytes set in the byte mask:


/* Low bits set in each byte we used as a mask */
mask &= ONEBYTES;
/* Add up "mask + (mask<<8) + (mask<<16) +... ":
same as a multiply */
mask *= ONEBYTES;
/* High byte now contains count of bits set */
len += mask >> 8*(sizeof(unsigned long)-1);

and I'm wondering if anybody can come up with something that avoids the need for that multiply (and again - conditionals don't work, the mispredict costs kill you).

Because that multiply isn't free either.
1
Add a comment...
People
Have him in circles
182 people
Sebastian Kügler's profile photo
Ademar Reis's profile photo
Lamarque Souza's profile photo
Will Resende's profile photo
Helmer Mourao's profile photo
Lucas Brito Arruda's profile photo
Work
Occupation
Free Software Programmer
Employment
  • INdT
    Free Software Developer, present
Basic Information
Gender
Male
Looking for
Friends, Networking
Relationship
Married
Other names
Rodrigo Cesar Lopes Belem
Story
Tagline
Free software developer living in the middle of the Amazon Rain Forest.
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Currently
Manaus
Links
Contributor to