Objective-C instance on AArch64, as the latter helper from the runtime
is a plain function call rather than an expensive message dispatch,
and moreover it also works for protocols (the "class" method is part
of NSObject, and protocols do not support it since there is no single
root class and hence they may represent an instance of a class that
does not derive from NSObject)
o also call it to get the "self" pointer when calling class methods for
protocols on AArch64 (fixes tobjc22a and tobjc22b on Darwin/AArch64)
o also call it to get the metaclass of a class on Darwin/AArch64 (fixes
tobjc25)
- removed special handling of getting the Objective-C (meta)class for
non-type nodes on other Darwin platforms, as this is also correctly
handled by the generic pass_generate_code
git-svn-id: trunk@30018 -
If assembler block has no modified register list, it is still handled in pass2, by allocating all volatile registers (not only the integer ones as before).
git-svn-id: trunk@30011 -
breakpoint, or zero otherwise) to DoSelectSourceLine, instead of using
stop_breakpoint_number
- removed stop_breakpoint_number and all the convoluted logic around it from the
gdb/mi interface
* made stop_breakpoint_number private in the libgdb.a interface to ensure it's
only used for internal use; UI code should rely on the new BreakIndex
parameter instead
git-svn-id: trunk@30003 -
ExecAsyncOutput *before* calling DebuggerScreen, because DebuggerScreen may
call gdb commands, which will clear ExecAsyncOutput (or replace it with
something entirely different)
git-svn-id: trunk@30002 -
in the relocations (change the relocations to use "external reference" in
Mach-O terminology), because initially section number-based relocations
were not supported for AArch64 and later they were added but behave
slightly differently from those on other platforms (or there's a bug in
(some?) linker versions with them) (mantis #27531)
o also add a dummy text section, since the assemblers also always do that
o only use references to global symbols in the relocations, because when
using local symbols in assembler code then for most architectures these
must then be translated to section references (like the old code did),
while for others they should remain symbols. For global symbols, the
behaviour is the same everywhere
git-svn-id: trunk@29999 -
o in particular, add tdef size information to the update_reference*()
methods, and factored out offset adjustments into its own method
o also make sure the passed size to update_reference*() corresponds to the
actual size of the index, as it's no longer guaranteed to be ptruint
since the previous commit
git-svn-id: trunk@29967 -