04 November 2018, 21:30 | #661 | |
Registered User
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 55
Posts: 1,959
|
Quote:
lea Start(PC),A0 add.l #LongJump-Start,A0 jmp (A0) ds.b 100000 LongJump rts |
|
04 November 2018, 21:43 | #662 |
Banned
Join Date: Sep 2016
Location: UK
Posts: 2,917
|
|
04 November 2018, 21:46 | #663 |
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
|
Too bad Don Adan presented the solution, I wanted you to think about it a bit! And there is nothing hacky about it!
|
04 November 2018, 21:48 | #664 |
Banned
Join Date: Sep 2016
Location: UK
Posts: 2,917
|
|
04 November 2018, 22:23 | #665 |
Defendit numerus
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 53
Posts: 4,468
|
I usually do this way:
Code:
l move.l #farcode-l,d0 jmp l(pc,d0.l) ds.b 100000 farcode nop ;my dist>32k code |
04 November 2018, 22:30 | #666 |
Banned
Join Date: Sep 2016
Location: UK
Posts: 2,917
|
|
04 November 2018, 22:39 | #667 |
Defendit numerus
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 53
Posts: 4,468
|
Off course the same concept of Don's code.
Only 2 bytes shorter (but use a spare register). It can also be done in other ways, like with indexed jump tables. |
04 November 2018, 22:40 | #668 |
Registered User
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 55
Posts: 1,959
|
|
04 November 2018, 22:42 | #669 | |
Banned
Join Date: Sep 2016
Location: UK
Posts: 2,917
|
Quote:
If the code was properly relocatable you wouldn't have to do this. |
|
04 November 2018, 22:44 | #670 |
Registered User
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 55
Posts: 1,959
|
Nothing hacky, and this is only one example, exist more options f.e pea version. Often similar code is used to access routines without direct branch/jump f.e as code for games/utils protection.
|
04 November 2018, 22:58 | #671 | |
Registered User
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 55
Posts: 1,959
|
Quote:
|
|
04 November 2018, 23:17 | #672 |
Banned
Join Date: Sep 2016
Location: UK
Posts: 2,917
|
bxx.l is fine. I'm utterly happy with the hacky way.. just please dont pretend it isnt hacky.
|
04 November 2018, 23:20 | #673 |
Registered User
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 55
Posts: 1,959
|
Seems you dont see hacky code. Hacky can be f.e RNC copylock coder, but no this one mentioned by me or by Ross. I think that you have very minimalistic knowledge about 68k coding. Try to resource 10MB code from different 68k platforms and you will maybe understand which code is hacky.
|
04 November 2018, 23:33 | #674 | |
Banned
Join Date: Sep 2016
Location: UK
Posts: 2,917
|
Quote:
|
|
05 November 2018, 01:18 | #675 | |
Registered User
Join Date: May 2018
Location: Delta, Canada
Posts: 192
|
Quote:
If you do mean relocatable, a decent loader (or linker if generating for a fixed address space) should be able to relocate the destination in a JSR.L. So I suppose you are talking about position independent then... |
|
05 November 2018, 06:24 | #676 | |
Registered User
Join Date: Jun 2008
Location: Boston USA
Posts: 466
|
Quote:
|
|
05 November 2018, 11:41 | #677 |
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
|
|
05 November 2018, 12:33 | #678 | |||||
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,409
|
Quote:
Quote:
Quote:
1) you forgot to mention the 68040 result, which is significantly higher than the 80486 result. It scores 21 MIPS in your list (see manufacturer Motorola). 2) you can't just uprate the ARM2 to 25MHz. At the time we're talking about, there was no memory fast enough to service such a chip. Which is exactly why there was no ARM2@25MHz and also why the ARM3 (which does do 25MHz) has a 4KB cache. Interestingly, this seems to be the only real difference between the ARM2 and ARM3. More interestingly (but expected as the memory the AMR3 uses has to be slower than it would need to be in order to prevent wait states), the ARM3@25MHz has a manufacturer's speed claim of 12 MIPS, not 14 as you extrapolated (https://en.wikipedia.org/wiki/List_o...oarchitectures). 3) the 486 result seems really low, I have seen claims of 20 MIPS@25MHz elsewhere. Which would make some sense as this chip was seen to be competitive with the 68040 and that clearly wouldn't have been the case if it ran upwards of 30% slower. I suspect the 486's named in this list are actually mostly the 486SL 'low cost' version (which was released somewhat after the 486 itself), as opposed to the 486DX (which is the original released version). The 'original' 486 has a MIPS rating of 20 according to other sources. For instance, see this quote from http://lowendmac.com/2014/cpus-intel-80486/ "Byte magazine (May 1993) notes that the 486 has a MIPS (million instructions per second) rating of 20 at 25 MHz and 54 at 66 MHz." However, it doesn't really matter anyway, as the claim that the 12MHz ARM2 was competitive with a 25MHz 486 is still plainly false. Quote:
Calling that difference 'a bit slower' is disingenuous at best. They also show that the ARM2@12MHz is slower than both the 386@33MHz and the 68030@33MHz (let alone one at 50Mhz). Which conforms exactly to what I stated at the start of our little exchange about the ARM2. Quote:
Even if you look at the rather impressive Dhrystone results of the ARM2@8 vs the 386@16, scaling these up to 12 and 33 MHZ still has the ARM2 lose. In other words, the evidence you managed to find does not support any of your claims and in fact supports everything I've said, but you're going to continue claiming your earlier opinions are probably correct anyway. Got ya. And seriously, approximate cycle counts for an untested bit of code? What use are those exactly (I mean, exact cycle counts might be useful, but approximate seems rather useless)? And what exactly does one tiny algorithm prove? (answer: nothing, really! It might be an outlier and considering other benchmarks disagree with these results, it is actually likely that it is an outlier) Lastly, I want to stress (again) that I actually really like the ARM2's and think they offered great performance. However, I just feel that it's best to remain honest about the pro's and con's and not get carried away with opinions over facts. As nice as these CPU's were, they were not actually as fast as you've claimed. ----- And all of this is without accounting for the fact we're comparing the wrong CPU's. As I researched (ok, Googled ) this post, I found the 1991 Archimedes at GBP999 was not running a 12MHz ARM2. It was in fact the A5000 running a 25MHz ARM3*. Which indeed gets a lot closer to the 486/68040 running at the same speed, although the ARM3 MIPS rating is still clearly lower than either of these two. However, the given price of the A5000 did not include a hard disk or monitor, where the 486 I quoted did have a monitor and hard disk. As such, I'm still not convinced about the price/performance ratio being in the Acorns favour. *) The 12MHz variation seems to be the A3010, which was released in 1992 for GBP499. There may in fact be other 12MHz variants prior to 1991, but the information on what is actually in the the various Archimedes models is somewhat scarce. However, even if they did exist, all potential candidates prior to 1991 were a lot more expensive than the GBP999 A5000. Last edited by roondar; 05 November 2018 at 13:46. Reason: Cleared up the grammar & lay-out a bit and added the dhrystone thing |
|||||
05 November 2018, 12:38 | #679 |
Banned
Join Date: Sep 2016
Location: UK
Posts: 2,917
|
Many things.. The OS helps you out and does this for you. So why hand roll it? Second.. you’re probably doing it wrong if you are mixing code and data to the extent you need to. That’s what sections are for. Or hard disks! Valid does not mean something isn’t a hack. |
05 November 2018, 13:24 | #680 |
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,409
|
Without getting into the 'is this specific bit of code a hack' business (as I feel that is rather subjective and both sides of that argument make sense), I do wonder what else jmp d(pc,ix.l)/jsr d(pc,ix.l) could've been meant for.
To me it does seem to be designed for the purpose of getting around short-range branches while retaining 'address independence'. After all, you really shouldn't need a long index for jump tables. And again, I really don't care about the hack-vs-non-hack aspect here - I'm just interested in figuring out the reason for designing it as is. Edit: I do agree using the OS is generally the better option (silly hardware banging code like I sometimes write excluded as that *is* indeed rather hacky ), which is one extra reason to not want .COM files Last edited by roondar; 05 November 2018 at 13:33. |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Any software to see technical OS details? | necronom | support.Other | 3 | 02 April 2016 12:05 |
2-star rarity details? | stet | HOL suggestions and feedback | 0 | 14 December 2015 05:24 |
EAB's FTP details... | Basquemactee1 | project.Amiga File Server | 2 | 30 October 2013 22:54 |
req details for sdl | turrican3 | request.Other | 0 | 20 April 2008 22:06 |
Forum Details | BippyM | request.Other | 0 | 15 May 2006 00:56 |
|
|