yasm-user?

Dave Lee davelee.com at gmail.com
Thu Apr 10 21:15:46 PDT 2008


Thanks Peter, here goes…

I'm trying to compile x264 on my x86 mac.

The error I am getting is: "effective address too complex". Is there a
way to print out what made the expression pass into "too complex"
territory?

The actual lines referred to by yasm are macro calls, eg:

LOAD_GLOBAL t5d, x264_cabac_range_lps, t5, t3*4

and LOAD_GLOBAL looks like:

%macro LOAD_GLOBAL 4
%ifdef PIC64
    …
%elifdef PIC32
    %ifnidn %3, 0
    lea   %1, [%3+%4]
    movzx %1, byte [%2+%1 GLOBAL]
    %else
    movzx %1, byte [%2+%3+%4 GLOBAL]
    %endif
%else
    …
%endif
%endmacro

(unless I've misunderstood something, PIC32 is the appropriate portion
of the macro in this case.)

GLOBAL is a macro defined as: - fakegot + x

where fakegot is at the start of .text and x is a register that
contains a computed GOT (if I understand the code correctly).

I could be confused on everything I've written here, my knowledge of
assembly is certainly limited. The phrase "knows enough to be
dangerous" may apply to me. If I've left out an important detail,
please point it out.

In the end, my question is, how can I find out why the effective
address is too complex, and how can I simplify it?

thanks
Dave

On Thu, Apr 10, 2008 at 12:56 PM, Peter Johnson <peter at tortall.net> wrote:
> On Thu, 10 Apr 2008 08:32:07 -0600, Dave Lee wrote
>
> > Quick question, where's a good place to ask questions about some yasm
>  > code that isn't compiling?
>
>  Go ahead and ask it here.
>
>  Peter
>


More information about the yasm-devel mailing list