Back to index

cell-binutils  2.17cvs20070401
Defines | Functions | Variables
w65-dis.c File Reference
#include <stdio.h>
#include "sysdep.h"
#include "w65-opc.h"
#include "dis-asm.h"

Go to the source code of this file.

Defines

#define STATIC_TABLE
#define DEFINE_TABLE

Functions

static void print_operand (int lookup, char *format, int *args)
int print_insn_w65 (bfd_vma memaddr, struct disassemble_info *info)

Variables

static fprintf_ftype fpr
static void * stream
static struct disassemble_infolocal_info

Define Documentation

#define DEFINE_TABLE

Definition at line 23 of file w65-dis.c.

#define STATIC_TABLE

Definition at line 22 of file w65-dis.c.


Function Documentation

int print_insn_w65 ( bfd_vma  memaddr,
struct disassemble_info info 
)

Definition at line 58 of file w65-dis.c.

{
  int status = 0;
  unsigned char insn[4];
  const struct opinfo *op;
  int i;
  int X = 0;
  int M = 0;
  int args[2];

  stream = info->stream;
  fpr = info->fprintf_func;
  local_info = info;

  for (i = 0; i < 4 && status == 0; i++)
    status = info->read_memory_func (memaddr + i, insn + i, 1, info);

  for (op = optable; op->val != insn[0]; op++)
    ;

  fpr (stream, "%s", op->name);

  /* Prepare all the posible operand values.  */
  {
    int size = 1;
    int asR_W65_ABS8 = insn[1];
    int asR_W65_ABS16 = (insn[2] << 8) + asR_W65_ABS8;
    int asR_W65_ABS24 = (insn[3] << 16) + asR_W65_ABS16;
    int asR_W65_PCR8 = ((char) (asR_W65_ABS8)) + memaddr + 2;
    int asR_W65_PCR16 = ((short) (asR_W65_ABS16)) + memaddr + 3;

    switch (op->amode)
      {
       DISASM ();
      }

    return size;
  }
}

Here is the caller graph for this function:

static void print_operand ( int  lookup,
char *  format,
int args 
) [static]

Definition at line 33 of file w65-dis.c.

{
  int val;
  int c;

  while (*format)
    {
      switch (c = *format++)
       {
       case '$':
         val = args[(*format++) - '0'];
         if (lookup)
           local_info->print_address_func (val, local_info);
         else
           fpr (stream, "0x%x", val);

         break;
       default:
         fpr (stream, "%c", c);
         break;
       }
    }
}

Variable Documentation

fprintf_ftype fpr [static]

Definition at line 28 of file w65-dis.c.

Definition at line 30 of file w65-dis.c.

void* stream [static]

Definition at line 29 of file w65-dis.c.