Browse by Tags

Tagged Content List
  • Blog Post: How to use RtlUnwindEx

    Disclaimer: I've never actually written an unwind personality routine, so take what's here with a grain of salt. A few days back, I spent 30 minutes defending the C++ runtime's exception handling personality routine to the guy that has the less than enviable job of supporting the .Net Framework's...
  • Blog Post: AMD64 unwind info gotchas

    I had a brief e-mail exchange with one of the devs on the optimizer team about a checkin he put up for review. He modified the compiler so that it only aligns the stack for functions that call other functions - that's the typical definition in compiler lingo of a 'leaf function'. My first response was...
  • Blog Post: New Job, SP1

    I recently switched from the lead of the Code Gen & Tools team for Visual C++ to the lead for the Code Gen team for the .Net Framework. I've not used managed code much, but for some classes of code, it sure does look easier to use [I'm working on a goofy GUI app for my personal use in C# that took...
  • Blog Post: Speaking in 'public'...

    I'll be hanging out with the cool kids at the Northwest C++ Users Group tomorrow night. If you're in the area, and want to heckle me, swing by. We'll be in building 40 at 6:30 PM. My talk starts at 7:00 PM. I'm talking about the actual runtime cost of exception handling for x64 and x86 on Windows. ...
  • Blog Post: A more flexible array template [and the evolution of the idea]

    {Disclaimer - I started with a bunch of code from boost::array - it's a great implementation of the functionality it provides} While my day job doesn't generally allow me to goof around with advanced C++ features, I still managed to find time to do so after the kids are in bed. Mark & I were talking...
  • Blog Post: How to get CL.exe proxy filters (like STLFilt) working under VS2005

    There's a class of tools that lots of people write that replace cl.exe with a 'wrapper' to do things link pre-process a command line [perhaps adding particular -D arguments], or filtering the output to deal with things like psychotically complicated error messages from template metaprogramming. These...
  • Blog Post: x64 ABI vs. x86 ABI (aka Calling Conventions for AMD64 & EM64T)

    (This is an older post, with some mild cleanup, and fixed links) Before I start: ABI = Application Binary Interface – this is the spec that describes how to call functions, pass parameters, unwind the stack, handle exceptions, etc... It’s also sometimes call the ‘Calling Convention’ There is a...
  • Blog Post: Why isn't __assume on for asserts in retail mode?

    __assume and __forceinline were the first two features I implemented as a developer out of college. I just resolved a bug as 'By Design' that asked the question posed in the title. Here's a brief explanation: First, __assume(n==x) basically tells the expression optimizer & the global optimizer...
  • Blog Post: X64 Unwind Information

    I've had a fairly large number of e-mails with various people both inside & outside Microsoft explaining the AMD64 unwind data. I generally push them at the ABI documentation (which I've linked to in this entry). But the ABI documentation really requires a complete reading before you can really understand...
  • Blog Post: How to make a no-inline inline function (and why you might want to)

    The Windows folks had a problem with the AMD64 compiler last week. The interference package is not quite as good as the x86 one, so when it sees something like this: // header.h inline void foo(int a, int b, int c) { bar(&a, &b, &c); } // function.cpp #include ...
  • Blog Post: Boost & BJam plus Web Chats coming up

    I'm a big C++ fan, despite the fact that the VC++ optimizer is written in C. I've been using Boost for a couple years now, and just picked up the initial tarball for 1.32.0. Someone's written a .jam file for VC8 on x64, but it just does the bare minimum - lots of warnings & whatnot. I have written...
  • Blog Post: First Post - all things x64

    Welcome to my stinkin' blog. I just wanted a place to dump interesting & useful blobs of information about what I've been doing for the past 4 or 5 years of my life @ work: x64. My name is Kevin Frei, and I've been a developer on the x64 (aka AMD64, EM64T, and x86-64) compiler since it's inception...
Page 1 of 1 (12 items)