This repository has been archived by the owner on Oct 16, 2021. It is now read-only.
forked from nodejs/node-v0.x-archive
-
Notifications
You must be signed in to change notification settings - Fork 24
Illegal instruction executing node on a p1010rdb board with a e500v2 #9
Comments
Assuming you are running Linux on PowerPC, can you post the output of this command please?
|
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. 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 |
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. |
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.
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.
The text was updated successfully, but these errors were encountered: