Question: I have a really simple example which I've written on [JSBin](http://jsbin.com/iwihox/1/edit). It looks like this:

![a](https://i.imgur.com/8Fwii1J.png)

All I'd like to do is simply take two divs of a given width and height and display them side-by-side without a gap between them. I've used `display: inline-block` to accomplish the above, but it seems like it refuses to chomp the whitespace between divs, which seems to completely violate the idea of the separation of content and styling.

Here's my HTML:

```
<div class="container">
  <div class="a">
    <!-- completely empty -->
  </div>

  <div class="b">
    <!-- nothing at all -->
  </div>
</div>

```

and here's my CSS:

```
.container {
  display: inline-block;
}

.a {
  width: 320px;
  height: 240px;

  display: inline-block;

  background-color: #83C5D1;
}

.b {
  width: 180px;
  height: 240px;

  display: inline-block;

  background-color: #B2D9D6;
}

```

How can I work around this to get them snug together without touching my HTML?

Answer: 
The disassembler (IDA Demo, specifically) misled me by uniting several commands into one line. It made a single `mov` line out of a `mov-orr-orr` sequence that was meant to assign a full 32-bit constant to a register. The thunks were Thumb after all. The linker works as designed.

IDA is otherwise great. I knew in the back of my mind about this particular behavior regarding ARM, but this time it slipped.

My bad, thanks and upvotes to everyone who tried to help.
The details you want are specified in section "A2.3.2 Pseudocode details of operations on ARM core registers" of "ARM Architecture Reference Manual, ARMv7-A and ARMv7-R edition". Here is the relevant pseudocode (from the above manual) about writes to PC register:

```
BXWritePC(bits(32) address)
    if CurrentInstrSet() == InstrSet_ThumbEE then
        if address<0> == '1' then
            BranchTo(address<31:1>:'0');  // Remaining in ThumbEE state
        else
            UNPREDICTABLE;
    else
        if address<0> == '1' then
            SelectInstrSet(InstrSet_Thumb);
            BranchTo(address<31:1>:'0');
        elsif address<1> == '0' then
            SelectInstrSet(InstrSet_ARM);
            BranchTo(address);
        else // address<1:0> == '10'
            UNPREDICTABLE;

```

If the low bit of the address (bit 0) is set, the processor will clear this bit, switch to Thumb mode, and perform a jump to the new address.

This behaviour is correct for ARMv7 and later (i.e. applies to all Windows Phone devices, but not all Android/iOS devices).