Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2651.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2651
Author: eem
Time: 8 January 2020, 7:52:21.345726 pm
UUID: ffd7613e-36d3-4c9c-bf23-524af81cd1e9
Ancestors: VMMaker.oscog-eem.2650
Cogit:
Fix old bug in ARM32 LoadEffectiveAddressMwrR
Improve the ARM32 trampoline marshalling code fractionally.
=============== Diff against VMMaker.oscog-eem.2650 ===============
Item was changed:
----- Method: CogARMCompiler>>concretizeLoadEffectiveAddressMwrR (in category 'generate machine code - concretize') -----
concretizeLoadEffectiveAddressMwrR
"Will get inlined into concretizeAt: switch."
+ "destReg = srcReg + offset, but does not need to set condition codes, etc"
- "destReg = srcReg (which contains an address) + offset"
<inline: true>
| srcReg offset destReg instrOffset |
offset := operands at: 0.
srcReg := operands at: 1.
destReg := operands at: 2.
^self rotateable8bitImmediate: offset
ifTrue:
[ :rot :immediate |
self machineCodeAt: 0
"add destReg, srcReg, #immediate ROR rot"
+ put: (self add: destReg rn: srcReg imm: immediate ror: rot).
- put: (self add: destReg rn: srcReg imm: immediate ror: rot<<1).
4]
ifFalse:
[instrOffset := self moveCw: offset intoR: ConcreteIPReg.
"add destReg, srcReg, ConcreteIPReg"
self machineCodeAt: 16 put: (self add: destReg rn: srcReg rm: ConcreteIPReg).
+ instrOffset + 4]
+
+ "cogit processor disassembleInstructionAt: 0 In: machineCode object"!
- instrOffset + 4]!
Item was changed:
----- Method: CogARMCompiler>>genMarshallNArgs:arg:arg:arg:arg: (in category 'abi') -----
genMarshallNArgs: numArgs arg: regOrConst0 arg: regOrConst1 arg: regOrConst2 arg: regOrConst3
"Generate the code to pass up to four arguments in a C run-time call. Hack: each argument is
either a negative number, which encodes a constant, or a non-negative number, that of a register.
Run-time calls have no more than four arguments, so chosen so that on ARM, where in its C ABI the
first four integer arguments are passed in registers, all arguments can be passed in registers. We
defer to the back end to generate this code not so much that the back end knows whether it uses
the stack or registers to pass arguments (it does, but...). In fact we defer for an extremely evil reason.
Doing so allows the x64 (where up to 6 args are passed) to assign the register arguments in an order
that allows some of the argument registers to be used for specific abstract registers, specifically
ReceiverResultReg and ClassReg. This is evil, evil, evil, but also it's really nice to keep using the old
register assignments the original author has grown accustomed to."
<inline: true>
numArgs = 0 ifTrue: [^self].
"Avoid arg regs being overwritten before they are read."
numArgs > 1 ifTrue:
[((cogit isTrampolineArgConstant: regOrConst1) not
and: [regOrConst1 = CArg0Reg]) ifTrue:
[cogit MoveR: regOrConst1 R: Extra0Reg.
^self genMarshallNArgs: numArgs arg: regOrConst0 arg: Extra0Reg arg: regOrConst2 arg: regOrConst3].
numArgs > 2 ifTrue:
[((cogit isTrampolineArgConstant: regOrConst2) not
and: [regOrConst2 = CArg0Reg or: [regOrConst2 = CArg1Reg]]) ifTrue:
[cogit MoveR: regOrConst2 R: Extra1Reg.
^self genMarshallNArgs: numArgs arg: regOrConst0 arg: regOrConst1 arg: Extra1Reg arg: regOrConst3].
numArgs > 3 ifTrue:
[((cogit isTrampolineArgConstant: regOrConst3) not
and: [regOrConst3 = CArg0Reg or: [regOrConst3 = CArg1Reg or: [regOrConst3 = CArg2Reg]]]) ifTrue:
[cogit MoveR: regOrConst3 R: Extra2Reg.
^self genMarshallNArgs: numArgs arg: regOrConst0 arg: regOrConst1 arg: regOrConst2 arg: Extra2Reg]]]].
(cogit isTrampolineArgConstant: regOrConst0)
ifTrue: [cogit MoveCq: (cogit trampolineArgValue: regOrConst0) R: CArg0Reg]
+ ifFalse: [regOrConst0 ~= CArg0Reg ifTrue: [cogit MoveR: regOrConst0 R: CArg0Reg]].
- ifFalse: [cogit MoveR: regOrConst0 R: CArg0Reg].
numArgs = 1 ifTrue: [^self].
(cogit isTrampolineArgConstant: regOrConst1)
ifTrue: [cogit MoveCq: (cogit trampolineArgValue: regOrConst1) R: CArg1Reg]
+ ifFalse: [regOrConst1 ~= CArg1Reg ifTrue: [cogit MoveR: regOrConst1 R: CArg1Reg]].
- ifFalse: [cogit MoveR: regOrConst1 R: CArg1Reg].
numArgs = 2 ifTrue: [^self].
(cogit isTrampolineArgConstant: regOrConst2)
ifTrue: [cogit MoveCq: (cogit trampolineArgValue: regOrConst2) R: CArg2Reg]
+ ifFalse: [regOrConst2 ~= CArg2Reg ifTrue: [cogit MoveR: regOrConst2 R: CArg2Reg]].
- ifFalse: [cogit MoveR: regOrConst2 R: CArg2Reg].
numArgs = 3 ifTrue: [^self].
(cogit isTrampolineArgConstant: regOrConst3)
ifTrue: [cogit MoveCq: (cogit trampolineArgValue: regOrConst3) R: CArg3Reg]
+ ifFalse: [regOrConst3 ~= CArg3Reg ifTrue: [cogit MoveR: regOrConst3 R: CArg3Reg]]!
- ifFalse: [cogit MoveR: regOrConst3 R: CArg3Reg]!
Build Update for OpenSmalltalk/opensmalltalk-vm
-------------------------------------
Build: #1909
Status: Failed
Duration: 12 mins and 5 secs
Commit: f5ec3f4 (Cog)
Author: smalltalking
Message: Fix type inconsistencies (int vs sqInt) (#464)
* Fix type inconsistencies (int vs sqInt)
Found by trying to compile with LTO enabled.
The VM compiles with the updated types on linux with or without LTO enabled (the LTO VM is not functional).
Didn't test with the OSes but changed the declarations in their files.
Affected functions:
- primInIOProcessEventsFlagAddress
- ioGatherEntropy
- GetAttributeString
- primitivePluginBrowserReady
- primitivePluginDestroyRequest
- primitivePluginRequestFileHandle
- primitivePluginRequestState
- primitivePluginRequestURL
- primitivePluginRequestURLStream
- primitivePluginPostURL
* Include sqMemoryAccess.h to have sqInt defined
View the changeset: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/0b4551db2e5c...f5…
View the full build log and details: https://travis-ci.org/OpenSmalltalk/opensmalltalk-vm/builds/634182598?utm_m…
--
You can unsubscribe from build emails from the OpenSmalltalk/opensmalltalk-vm repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=8795279&ut….
Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notificati….
Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications.
It's about be96d84, the other 3 commits are just noise.
There may be things left to do on Windows and Mac.
You can view, comment on, or merge this pull request online at:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/464
-- Commit Summary --
* Merge branch 'Cog' of https://github.com/OpenSmalltalk/opensmalltalk-vm into Cog
* Merge branch 'Cog' of https://github.com/OpenSmalltalk/opensmalltalk-vm into Cog
* Fix type inconsistencies (int vs sqInt)
* Merge branch 'fix-type-inconsistencies-int-sqInt' into Cog
-- File Changes --
M platforms/Cross/plugins/CroquetPlugin/CroquetPlugin.h (2)
M platforms/Mac OS/vm/Developer/sqMacMinimal.c (4)
M platforms/Mac OS/vm/osExports.c (16)
M platforms/Mac OS/vm/sqMacMain.c (2)
M platforms/Mac OS/vm/sqMacMain.h (2)
M platforms/unix/vm-display-Quartz/zzz/sqUnixQuartz.m (14)
M platforms/unix/vm-display-X11/sqUnixMozilla.c (10)
M platforms/unix/vm/osExports.c (18)
M platforms/win32/plugins/CroquetPlugin/sqWin32CroquetPlugin.c (2)
M platforms/win32/vm/sqWin32Exports.c (18)
M platforms/win32/vm/sqWin32Main.c (2)
M platforms/win32/vm/sqWin32PluginSupport.c (14)
M src/plugins/IA32ABI/IA32ABI.c (2)
M src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c (2)
-- Patch Links --
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/464.patchhttps://github.com/OpenSmalltalk/opensmalltalk-vm/pull/464.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/464
Currently it is only possible to maximize Squeak by using the button in the MainDockingBar (it is not possible by using the green button on the window what is slightly unexpected but ok).
The fullscreen I get is a Squeak that looks like a typical Mac fullscreen but has several drawbacks:
* it is not a new desktop with only the app, but consumes the current desktop
* if you change desktop you get strange behaviour with the dock appearing
* if you use a second monitor and have a Squeak in fullscreen on your first you get a black background stretched over the whole second monitor
The expected behaviour for fullscreen would be a native Mac OS fullscreen.
(@ronsaldo someone mentioned to me that is due to the new metalshaders)
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/407