Port-vax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: VAX addressing modes



On Thu, Jul 27, 2017 at 05:12:06AM +0200, Johnny Billquist wrote:
> To talk about VAX addressing modes, you need a VAX instruction, and the
> arguments to that instruction.

Duh, somehow I failed to copy & paste big parts of the data I collected
into the original message - sorry.

In objdump -dR output, the code looks like:

   5ca00:       31 de db        brw 5a5e1 <Perl_yylex+0x2e6f>
   5ca03:       cf 50 00 0a     casel r0,$0x0,$0xa
   5ca07:       27 11 38 45     divp $0x11,$0x38,$0x14[r5],*0xffffd214(r2),*0x46
(r0),*0x46(r0)
   5ca0b:       14 d2 14 d2 
   5ca0f:       b0 46 b0 46 
   5ca13:       95 12           tstb $0x12
   5ca15:       95 12           tstb $0x12
   5ca17:       19 00           blss 5ca19 <Perl_yylex+0x52a7>
   5ca19:       14 d2           bgtr 5c9ed <Perl_yylex+0x527b>
   5ca1b:       38 45 31 06     editpc $0x31[r5],$0x6,$0x0,$0x17
   5ca1f:       00 17 
   5ca21:       9f cf 76 06     pushab 5d09b <Perl_yylex+0x5929>
                        5ca22: R_VAX_RELATIVE   *ABS*+0x676cf
   5ca25:       00              halt
   5ca26:       dd 5a           pushl r10
   5ca28:       fb 01 ff bd     calls $0x1,*1a60ec <_GLOBAL_OFFSET_TABLE_+0xea0>
   5ca2c:       96 14 00 

(and I don't want to think about the duplicate tstb $0x12 right now)

This is the only complex example I found. All others look like a plain
jump table:

   5cdd1:       17 9f 30 6c     jmp *0x66c30
   5cdd5:       06 00 
                        5cdd3: R_VAX_RELATIVE   *ABS*+0x66c30
   5cdd7:       17 9f 7c 96     jmp *0x6967c
   5cddb:       06 00 
                        5cdd9: R_VAX_RELATIVE   *ABS*+0x6967c
   5cddd:       17 9f a8 71     jmp *0x671a8
   5cde1:       06 00 


Martin


Home | Main Index | Thread Index | Old Index