bugGNUstep - Bugs: bug #40818, libobjc2 Arm non-legacy dispatch

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #40818: libobjc2 Arm non-legacy dispatch

Submitted by:  David Hunt <davidhunt>
Submitted on:  Thu 05 Dec 2013 06:59:19 PM UTC  
 
Category: LibrariesSeverity: 3 - Normal
Item Group: BugStatus: Ready For Test
Privacy: PublicAssigned to: None
Open/Closed: Closed

Fri 13 Dec 2013 01:14:45 PM UTC, comment #1:

Looks like David fixed this. Please give it a try and report back.

Fred Kiefer <FredKiefer>
Project Member
Thu 05 Dec 2013 06:59:19 PM UTC, original submission:

The Arm version of the non-legacy dispatch trampolines for objc_msgSend in objc_msgSend.arm.S contain 3 critical issues.

Line 49: DTABLE_OFFSET is used instead of DATA_OFFSET
Line 53: DTABLE_OFFSET is used instead of DATA_OFFSET
Around Line 76: slowMsgLookup expects the address of a receiver as it can (and does) modify it. The code here almost does this, however r0 is not loaded with the address of the pushed receiver on the stack. This can be fixed with the simple insertion of,
mov r0,sp
after the push {\receiver}

The first two issues send the trampoline off into the scrubs every time. The third issue is a little more subtle as it doesn't crash, it does lead to some very unexpected behaviour though. r0 is pointing at the receiver and when slowMsgLookup overwrites it, it is actually modifying the class pointer on the original object.

David Hunt <davidhunt>

 

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by rmottola (Updated the item)
  • -unavailable- added by FredKiefer (Posted a comment)
  • -unavailable- added by davidhunt (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 4 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Tue 21 Oct 2014 01:39:05 PM UTCrmottolaOpen/ClosedIn Test=>Closed
    Fri 13 Dec 2013 01:14:45 PM UTCFredKieferItem GroupNone=>Bug
      StatusNone=>Ready For Test
      Open/ClosedOpen=>In Test

    Back to the top


    Powered by Savane 3.1-cleanup1