On Wed, Nov 16, 2011 at 7:50 PM, erik quanstrom <[email protected]> wrote: > well my example is slightly booged then. i just needed a label. > the point still stands that 6l is not liking the *value*. this actually > comes from _start64v, and i wanted to simplify it. if you replace > the given value with $10, it 6l will not complain.
This is a detail of the x86-64 architecture. An immediate in an arithmetic instruction must fit in a signed 32-bit int, and this one does not. You've written an impossible instruction, and the linker is telling you in own cryptic way. The assemblers do not know such details, never have. You need to MOVQ that constant into a register and then use the register as the argument to ADDQ. Russ
