Skip to content
This repository has been archived by the owner on Oct 16, 2021. It is now read-only.

Illegal instruction executing node on a p1010rdb board with a e500v2 #9

Closed
alepesoli opened this issue Nov 27, 2013 · 4 comments
Closed

Comments

@alepesoli
Copy link

I'm trying to compile and use node on a Freescale p1010rdb development board with a e500v2. I have successfully compiled version 0.10.21-release-ppc without any problems, but i have an "illegal instruction" error when i try to execute node.

Tracing the error on gdb gives me the following output:

(gdb) x/20i $pc-32
0x48136b0c: .long 0xc8e40003
0x48136b10: srawi r10,r3,1
0x48136b14: addi r1,r1,-8
0x48136b18: srawi r0,r10,31
0x48136b1c: stw r0,0(r1)
0x48136b20: stw r10,4(r1)
0x48136b24: .long 0xc8c10000
0x48136b28: addi r1,r1,8
=> 0x48136b2c: .long 0xfcc0369c
0x48136b30: .long 0xff873000
0x48136b34: bso- cr7,0x48136b58
0x48136b38: beq- cr7,0x48136b48
0x48136b3c: blt- cr7,0x48136b50
0x48136b40: li r3,1
0x48136b44: blr
0x48136b48: li r3,0
0x48136b4c: blr
0x48136b50: li r3,-1
0x48136b54: blr
0x48136b58: li r3,-1

After some researches, i found out that this instruction should be fcfid (used in deps/v8ppc/src/ppc/code-stubs-ppc.cc), and from what i know e500 doesn't support floating point instructions like fcfid or fctid.

@tunniclm
Copy link

Assuming you are running Linux on PowerPC, can you post the output of this command please?

LD_SHOW_AUXV=1 /bin/true

@alepesoli
Copy link
Author

Sorry, yes i'm running Linux on PowerPC, and i have also already reduced the cache line size in deps/v8ppc/src/ppc/constants-ppc.h in order to obtain a clean building.
The output of LD_SHOW_AUXV=1 /bin/true is:

AT_DCACHEBSIZE:  0x20
AT_ICACHEBSIZE:  0x20
AT_UCACHEBSIZE:  0x0
AT_SYSINFO_EHDR: 0x100000
AT_HWCAP:        booke efpdouble efpsingle spe mmu ppc32
AT_PAGESZ:       4096
AT_CLKTCK:       100
AT_PHDR:         0x10000034
AT_PHENT:        32
AT_PHNUM:        8
AT_BASE:         0x0
AT_FLAGS:        0x0
AT_ENTRY:        0x10000c2c
AT_UID:          0
AT_EUID:         0
AT_GID:          0
AT_EGID:         0
AT_SECURE:       0
AT_RANDOM:       0xbf977e40
AT_EXECFN:       /bin/true
AT_PLATFORM:     ppc8548
AT_BASE_PLATFORM:ppc8548

@tunniclm
Copy link

Thanks for that data, it will help in detecting when certain instructions are not available.

I think the problem you see is a similar to ibmruntimes/v8ppc#97 - the v8ppc builds do not currently work on 32-bit PowerPC processors. When I get to the point where I have something working without these instructions, I will update that issue.

@andrewlow
Copy link
Collaborator

I've reopened ibmruntimes/v8ppc#99 to track this issue as it is a V8 problem and not a Node issue.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants